上篇文章讲了WP_User_Query,通过该函数可以完成查询并返回用户数据的功能,其参数提供了定制化工能,例如排序字段、升序还是降序、用户角色等。如果你的网站有成千上万个用户,全部在一个页面输出显然很不可取,幸好wp pagenavi支持WP_User_Query,下面这段代码会输出网站所有注册用户(包括管理员),一页显示20个用户。
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$paged -= 1;
$limit = 20;
$offset = $paged * $limit;
$args = array(
'number' => $limit,
'offset' => $offset,
);
// Create the WP_User_Query object
$user_query = new WP_User_Query($args);
// Get the results
$authors = $user_query->get_results();
if ($authors): ?>
<div class="clearfix" id="staffmembers"><?php foreach ($authors as $author) : ?><a class="author" href="<?php echo get_author_posts_url($author->ID); ?>" rel="external nofollow" ><?php echo get_avatar($author->ID, 96); ?><?php echo $author->display_name; ?></a> <?php endforeach; ?></div>
<?php else: ?>
<div class="post">Sorry, no posts matched your criteria.</div>
<?php endif; ?>
<?php
wp_pagenavi(array(
'query' => $user_query,
'type' => 'users'
));
?>
创建一个WP_User_Query的实例$user_query,并获取查询结果通过foreach循环输出每个用户,你可以获取每个用户的ID,有了用户ID,你可以输出任何你想输出的用户信息将$user_query作为参数传递给wp_pagenavi,让wp_pagenavi对用户查询进行分页,默认是对$wp_query分页
自定义一个page模板,将这段代码放进去,你就可以轻松输出注册用户的信息,做一个带有分页的会员列表页面。