引用@Otto\'s response 对于我提出的一个关于按多个字段排序的问题,他说:
无法使用朴素的WP\\U查询。使用posts\\u orderby过滤器添加您自己的订购字符串。
function my_order($orderby) {
global $wpdb;
return "{$wpdb->posts.post_author} ASC, {$wpdb->posts.post_date} DESC";
}
add_filter( \'posts_orderby\', \'my_order\' );
$blah = new WP_Query(...);
remove_filter( \'posts_orderby\', \'my_order\' );
-奥托
这似乎是在新调用WP\\U查询-->时所采用的方式,我将如何在pre_get_posts()
具有两个元字段的操作,默认排序为?:
function mouldings_sort($query) {
if ($query->is_main_query() && is_tax(array(\'wood_types\',\'profile_categories\',\'combination_categories\'))) {
$query->set(\'meta_key\', \'_mouldings_dimensions_height\');
$query->set(\'order\', \'DESC\');
$query->set(\'orderby\',\'meta_value_num\');
}
}
add_action(\'pre_get_posts\',\'mouldings_sort\');
我之前尝试过简单地添加另一个元字段,如下所示:
$query->set(\'meta_key\', array(\'_mouldings_dimensions_height\', \'_mouldings_dimension_width\'));
$query->set(\'orderby\',\'meta_value_num\');
默认排序返回为
title
因此:
$query->set(\'orderby\',\'meta_value_num title\');
但看起来不像
meta_key
可以接受阵列和我的
title
回退回到奥托对此事的最初回应。任何帮助都将不胜感激。谢谢