WP查询按‘标题’排序不起作用

时间:2016-12-12 作者:Stefano

我想按字母顺序排列一份帖子标题列表。我正在使用此特定查询

// WP_Query arguments
$args = array(
    \'category_name\'     => \'reportage\',
    \'order\'             => \'ASC\',
    \'orderby\'           => \'title\',
);

// The Query
$query = new WP_Query($args);

// The Loop
if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        echo \'<ul><li style="float:left; width:100%;"><a href="\'.get_the_permalink().\'" style="color:#D34D3D">\'.get_the_title().\'</a></li></ul>\';
    }
} else {
    // no posts found
}

// Restore original Post Data
wp_reset_postdata();
在列表的某个点上,顺序似乎被打乱之前,查询一直工作得很好。

为什么所有帖子标题的顺序都不正确?

3 个回复
SO网友:tormorten

尝试添加\'suppress_filters\' => true 到您的查询参数。也许你有一个插件可以修改查询。

你也可以检查那些无序的帖子(第一个)是否是一个粘滞的帖子。默认情况下,粘性帖子会跳过订单队列。

您可以通过添加\'ignore_sticky_posts\' => true 到您的查询参数。

SO网友:philip

我遇到了同样的问题,没能解决。当我查看数据库中的自定义post类型条目时,最终发现了问题,并注意到无序的结果在menu\\u order列中设置了值。经过一番挖掘,我意识到是Post-Types-Order插件被设置为auto,并向orderby参数“注入”了一个额外的参数。我知道你可以在插件设置中关闭自动功能,但我选择通过查询参数来实现:

$loop = new WP_Query(
    array(
    \'post_type\' => \'my-custom-post-type\', 
    \'order\' => \'ASC\', 
    \'orderby\' => \'title\',
    \'ignore_custom_sort\' => true
    )  
); 
答对了!结果以正确的顺序返回。希望这对别人有帮助。

SO网友:zod

问题是$args,请执行以下操作:

$args = array(
    \'category_name\'     => \'reportage\',
    \'orderby\' => array( \'title\' => \'ASC\' )
);
您还可以按多个参数排序,如:

$args = array(
    \'category_name\'     => \'reportage\',
    \'orderby\' => array( \'menu_order\' => \'ASC\', \'title\' => \'ASC\', \'post_date\' => \'DESC\' ),
);

相关推荐

WP_QUERY ORDERBY不适用于META_KEY

我想在我的档案馆按“leasenum”订购这篇文章。php。我想过滤特定的“商城”。结果集正确,但顺序错误。只有在删除“meta\\u键”时,orderby才起作用meta\\u值\'。$args = array( \'post_type\' => \'shop\', \'meta_key\' => \'mall\', \'meta_value\' => $getvalue,