我想按字母顺序排列一份帖子标题列表。我正在使用此特定查询
// 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();
在列表的某个点上,顺序似乎被打乱之前,查询一直工作得很好。
为什么所有帖子标题的顺序都不正确?
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\' ),
);