最近发现wordpress官方的wp_user_query里所给出的’orderby’ => ‘post_count’这个排序根本不生效。
使用下面代码始终没法基于文章数量排序:
$authors = get_users(
array(
'role' => 'author' ,
'number' => $perpage,
'offset' => $offset,
'paged' => $paged,
'orderby' => 'post_count',
'order' => 'DESC'
)
);
基于点启资源一翻搜索,终于找到了解决方案,不要一直纠结官方的orderby=post_count了,这根本就是个大bug,只能自己另写代码实现。
代码如下供大伙参考:
$authors = get_users(array(
'role' => 'author',
'orderby' => 'post_count',
'order' => 'DESC',
));
$sorted_authors = [];
foreach ($authors as $author) {
$author->post_count = count_user_posts($author->ID);
$sorted_authors[$author->ID] = $author;
}
usort($sorted_authors, function($a, $b) {
return $b->post_count - $a->post_count;
});
foreach ($sorted_authors as $author) {
echo $author->display_name . ' - ' . $author->post_count . ' posts<br>';
}
先使用get_users()
函数获取作者用户列表,然后遍历每个作者并为每个作者创建了一个新的属性post_count
,并将其设置为对应的文章数量。然后,我使用usort()
函数根据post_count
属性对作者进行自定义排序。
最后,我按照排序后的结果输出作者列表就是基于文章数排序了。
原文链接:https://www.dqzy.cn/2025/04/01/159.html,转载请注明出处。
1、本站所有源码资源(包括源代码、软件、学习资料等)仅供研究学习以及参考等合法使用,请勿用于商业用途以及违法使用。如本站不慎侵犯您的版权请联系我们,我们将及时处理,并撤下相关内容!
2、访问本站的用户必须明白,本站对所提供下载的软件和程序代码不拥有任何权利,其版权归该软件和程序代码的合法拥有者所有,请用户在下载使用前必须详细阅读并遵守软件作者的“使用许可协议”,本站仅仅是一个学习交流的平台。
3、如下载的压缩包需要解压密码,若无特殊说明,那么文件的解压密码则为:www.dqzy.cn。
4、点启资源网是一个免费且专业分享网站源码、图片素材、特效代码、教程文章、站长工具的平台。我们努力给站长提供好的资源!
评论0