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

最近发现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
喜欢就支持一下吧
点赞10 分享