gpt4 book ai didi

php - 如何对wp_query的结果进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:22 25 4
gpt4 key购买 nike

我正在尝试对 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'];
});

我想在查询后进行排序。是因为我想排序很多次,不想每次排序都要查询

解决方案

这将返回 fatal error :无法将 WP_Post 类型的对象用作数组

usort($the_query->posts, function($a, $b) {
return $a['title'] - $b['title'];
});

这是因为数组的结构是这样的:

$the_query->posts[0]->title; 

因此您必须将 $a['title'] - $b['title'] 更改为 $a->title - $b->title并使用 Pieter Goosen 的答案,最终结果是:

usort($the_query->posts, function($a, $b) {
return strcasecmp(
$a->title,
$b->title
);
});

谢谢大家

最佳答案

查看WP_Query中的orderbyorder参数.如果您需要按帖子标题排序,您可以将以下内容添加到您的查询参数中

'orderby' => 'title'
'order' => 'ASC'

编辑

如果你需要用usort排序,你可以这样做

usort($the_query->posts, function($a, $b) {
return strcasecmp(
$a->post_title,
$b->post_title
);
});

关于php - 如何对wp_query的结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26943392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com