Wordpress WP_Query 'orderby' 不工作
Posted
技术标签:
【中文标题】Wordpress WP_Query \'orderby\' 不工作【英文标题】:Wordpress WP_Query 'orderby' not workingWordpress WP_Query 'orderby' 不工作 【发布时间】:2012-11-07 16:56:39 【问题描述】:我的查询没有使用orderby
参数对我的帖子进行排序。
一点背景:
我在一个循环遍历“类别”ID 的自定义分类的 foreach 语句中。在该 foreach 语句中,我试图调用一个新的 WP_Query 从该 foreach 循环的每个“类别”中获取帖子。我的 args 数组如下:
$args = array(
'post_type' => 'wpsc-product',
'post_status' => 'publish',
'showposts' => -1,
'tax_query' => array(
array(
'taxonomy' => 'wpsc_product_category',
'field' => 'term_id',
'terms' => $cat_id,
),
array(
'taxonomy' => 'series',
'field' => 'slug',
'terms' => $series_name
)
),
'orderby' => 'title',
'order' => 'DESC'
);
$cat_id
和 $series_name
都是我在此 post_type 中的自定义分类法中的数组。
orderby
和 order
根本不起作用,我不知道为什么。
【问题讨论】:
【参考方案1】:我已经在我的测试博客上检查了你的代码。它按预期工作。所以参数
'orderby' => 'title',
'order' => 'DESC'
你已经正确设置了。
在这种情况下,您可以检查 SQL 请求。
$query = new WP_Query($args);
var_dump($query->request);
【讨论】:
另外,这里是输出:GROUP BY wp_posts.ID ORDER BY wp_posts.menu_order, wp_posts.post_date DESC 如果在运行new WP_Query
之前添加remove_all_filters('posts_orderby');
,有时会解决排序问题。
这是一种硬重置,据我了解,一些插件会无意中影响订购。
@DavidYeiser 是的,我有一个插件覆盖了我的 orderby 参数。 var_dump($query->request);
帮助揭露了这一点。
@DavidYeiser 谢谢 :)以上是关于Wordpress WP_Query 'orderby' 不工作的主要内容,如果未能解决你的问题,请参考以下文章
WP_Query($args) 在 Wordpress 中不起作用
WordPress:如何使用 $wp_query 按类别过滤帖子?