【发布时间】:2014-09-04 14:35:08
【问题描述】:
我正在尝试通过meta_value 订购WP_query,但wordpress 似乎不想更改orderby
查询如下
$popular_args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => -1,
'meta_key' => 'wpb_post_views_count',
'orderby' => 'meta_value_num',
'order' => 'ASC',
);
$popular_query = new WP_query( $popular_args );
查询结果如下
WP_Query Object ( [query_vars] => Array (
[post_type] => post
[post_status] => publish
[posts_per_page] => -1
[meta_key] => wpb_post_views_count
[orderby] => menu_order
[order] => ASC
[error] =>
[m] =>
[p] => 0
[post_parent] =>
[subpost] =>
....
您应该注意到查询中的orderby 值已设置为menu_order
即使我特别将其设置为meta_value_num
我一直在重置查询并在各处发布数据,以尝试让查询正常运行,但我现在没有想法。
任何帮助都会很棒
Ps:在sidebar 中的required 文件中调用了有关查询,该文件又使用get_sidebar() wordpress 函数调用
【问题讨论】:
-
您在某处缺少重置,因为默认的
order_by参数是date。您是否检查过是否有任何过滤器或其他东西?另外,你有一个语法错误,应该是new WP_Query($popular_args) -
感谢您的回复,但站点中没有将 orderby 属性设置为 menu_order 的查询。 WP_query 也是一个错字……它在实际代码中是正确的。
-
你能发布更多代码吗?另外,在生成新查询之前尝试
var_dump($wp_query);。 -
$wp_query 将
orderby设置为menu_order and theorder` 设置为ASC。这是new WP_Query之前的 $wp_query -
新的 WP_Query 应该以任何方式与全局查询分开......如果它覆盖自定义 WP_Query 参数会很奇怪。无论如何,我现在可以使用我在下面发布的 hacky 答案...需要重新开始工作。也许稍后可以对此有所了解......
标签: loops post sql-order-by wordpress