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 中的自定义分类法中的数组。

orderbyorder 根本不起作用,我不知道为什么。

【问题讨论】:

【参考方案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 按类别过滤帖子?

WordPress 自定义查询 WP_Query 所有参数

未捕获的错误:在 url 中找不到类 'WP_Query' - Wordpress

PHP WordPress分页wp_query

PHP Wordpress循环 - WP_Query