WordPress 的 get_users 是获取用户列表的,我们可以获取所有角色是 author 的用户,但是这个排序却没有基于最新发布文章时间(get_users order by author last post date)来排序用户列表的。
我们可以通过以下函数来实现:
- function get_users_ordered_by_post_date($args = '') {
- // Prepare arguments
- if (is_string($args) && '' !== $args)
- parse_str($args, $args);
- $asc = (isset($args['order']) && 'ASC' === strtoupper($args['order']));
- unset($args['orderby']);
- unset($args['order']);
- // Get ALL users
- $users = get_users($args);
- $post_dates = array();
- if ($users) {
- // For EACH user ...
- foreach ($users as $user) {
- $ID = $user->ID;
- // ... get ALL posts (per default sorted by post_date), ...
- $posts = get_posts('author='.$ID);
- $post_dates[$ID] = '';
- // ... then use only the first (= newest) post
- if ($posts) $post_dates[$ID] = $posts[0]->post_date;
- }
- }
- // Sort dates (according to order), ...
- if (! $asc)
- arsort($post_dates);
- // ... then set up user array
- $users = array();
- foreach ($post_dates as $key => $value) {
- // $user = get_userdata($key);
- // $users[] = $user->ID;
- $users[] = get_userdata($key);
- }
- return $users;
- }
将 get_users 替换为 get_users_ordered_by_post_date 即可,参数还是传入一个$args。
有一点需要注意的时,如果要分页获取作者列表,需对数组进行分页。
- $authors = get_users_ordered_by_post_date(
- array(
- 'role__in' => array( 'author' )
- )
- );
- if($authors){
- $perpage = 16;
- $pagess = ceil(count($authors) / $perpage);
- if (!get_query_var('paged')) {
- $paged = 1;
- }else{
- $paged = $wpdb->escape(get_query_var('paged'));
- }
- $offset = $perpage*($paged-1);
- $authors2 = array_slice($authors,($paged-1)*$perpage,$perpage);
- if($authors2){
- foreach($authors2 as $author){
- }
- }
- }
有种排序有个问题就是当用户以及文章越来越多时,数据查询的时间会越来越长,也就是可能会卡。
文章標題:WordPress如何基于最后发布文章的时间来排序作者用户列表
文章連結:https://www.wuyanshuo.cn/1304.html
更新時間:2022年9月12日
1、本站所有資源均不添加推廣檔案或浮水印,壓縮包內若有廣告檔案和浮水印請勿輕易相信。
2、本站資源均為兩層壓縮,第一層7z(尾碼若為wys,請自行修改為7z)有解壓密碼; 第二層zip或cbz,無解壓密碼,可直接使用漫畫類軟件程式查看; 詳情可參攷解壓教程。
3、本站大部分內容均收集於網絡! 若內容侵犯到您的權益,請發送郵件至:admin#wysacg.top我們將第一時間處理! 資源所需價格並非資源售賣價格,是收集、整理、編輯詳情以及本站運營的適當補貼,並且本站不提供任何免費技術支援。 所有資源僅限於參攷和學習,版權歸原作者所有!