我正在尝试对 wp_query 的结果进行排序,我想按不同的参数对其进行排序,而不再次进行查询。我有类似的东西:
$the_query = new WP_Query( $args );
我想对 $the_query 进行排序,WP_Query 返回这样的结构:
$the_query->posts[0]->title;
因此,我想按“标题”对所有元素进行排序。我试过这个:
usort($the_query->posts, function($a, $b) {
return $a['title'] - $b['title'];
});
我想在查询后进行排序。是因为我想排序很多次并且我不想每次想排序时都进行查询
SOLUTION
这将返回致命错误:无法使用 WP_Post 类型的对象作为数组
usort($the_query->posts, function($a, $b) {
return $a['title'] - $b['title'];
});
这是因为数组的结构是这样的:
$the_query->posts[0]->title;
所以你必须改变$a['title'] - $b['title']
for $a->title - $b->title
并使用 Pieter Goosen 的答案,最终结果是:
usort($the_query->posts, function($a, $b) {
return strcasecmp(
$a->title,
$b->title
);
});
感谢大家