wordpress基于发布的文章数倒序输出作者orderby=post_count不生效的解决办法_WordPress教程

wordpress基于发布的文章数倒序输出作者orderby=post_count不生效的解决办法_WordPress教程

最近发现wordpress官方的wp_user_query里所给出的'orderby' => 'post_count'这个排序根本不生效。 使用下面代码始终没法基于文章数量排序: $authors = get_users( array( 'role' => 'author' , 'number' => $perpage, 'offset' =&...

最近发现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

评论0

请先
显示验证码
没有账号?注册  忘记密码?