【问题标题】: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 根本不起作用,我不知道为什么。

【问题讨论】:

    标签: php sql wordpress


    【解决方案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 谢谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-08
    • 2016-06-18
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多