在WordPress按角色获取可分页的用户列表并显示最新文章这篇文章中我们已经介绍了获取单个角色的用户列表,如果想获取多个角色的用户列表呢,get_users函数中的role并不支持数组,这时我们就要把多个数组进行合并,使用array_merge()将两个或多个数组的单元合并起来,使用array_slice() 函数在数组中根据条件取出一段值,并返回。
多个角色的排列顺序将以array_merge()函数中单元的排列为顺序,比如:array_merge($editors,$authors,$contributors);
,顺序则为编辑、作者和投稿者,每个角色中可以再进行排序。
完整的获取多个角色的代码,添加到模板页面即可:
- <section class="user_content">
- <?php $number = 8;
- <!-- 作者 -->
- <ul>
- <?php
- $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
- $offset = ($paged - 1) * $number;
- $editors = get_users(
- array(
- 'blog_id'=> 1,
- 'orderby' => 'post_count',
- 'order' => 'DESC',
- 'role' => 'editor'
- )
- );
- $authors = get_users(
- array(
- 'blog_id' => 1,
- 'orderby' => 'post_count',
- 'order' => 'DESC',
- 'role' => 'author'
- )
- );
- $contributors = get_users(
- array(
- 'blog_id' => 1,
- 'orderby' => 'post_count',
- 'order' => 'DESC',
- 'role' => 'contributor'
- )
- );
- $users = array_merge($editors,$authors,$contributors);
- $query = array_slice($users, $offset, $number);
- $total_users = count($users);
- $total_query = count($query);
- $total_pages = intval($total_users / $number) + 1;
- foreach ($query as $user) { ?>
- <?php global $wp_query; $display_name = $user->display_name; ?>
- <li>
- <?php echo $display_name; ?>
- </li>
- <?php } ?>
- </ul>
- <!--分页-->
- <?php if ($total_users > $total_query) {echo '<div class="wp-pagenavi">';$current_page = max(1, get_query_var('paged'));echo paginate_links(array('base' => get_pagenum_link(1) . '%_%','format' => '/page/%#%/','current' => $current_page,'total' => $total_pages));echo '</div>';}?>
- </section>
获取多个角色的用户列表请前往野玩儿官网,同时野玩儿也添加一个自定义的角色(神人),通过get_users函数一样的获取神人用户列表,重新设计了用户列表的样式。演示站的用户列表还是获取单个角色。
Yewan主题演示用户列表野玩儿官网用户列表原文地址
本文由 远方的雪山 作者:萨龙龙 发表,转载请注明来源!