最近发现wordpress官方的wp_user_query里所给出的’orderby’ => ‘post_count’这个排序根本不生效。
使用下面代码始终没法基于文章数量排序:
$authors = get_users( array( 'role' => 'author' , 'number' => $perpage, 'offset' => $offset, 'paged' => $paged, 'orderby' => 'post_count', 'order' => 'DESC' ) );
要按照作者的文章数量进行排序,需要进行自定义解决方案。下面是一个修改版的代码示例,可以根据作者的文章数量进行排序:
$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()
函数获取作者用户列表,然后遍历每个作者并使用count_user_posts()
函数获取其文章数量。
接着,我为每个作者创建了一个新的属性post_count
,并将其设置为对应的文章数量。然后,我使用usort()
函数根据post_count
属性对作者进行自定义排序。
最后,我按照排序后的结果遍历作者列表,并输出作者名字和对应的文章数量。
来源地址:wordpress基于发布的文章数倒序输出作者orderby=post_count不生效的解决办法
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END