上篇文章讲了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); ?>"><?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模板,将这段代码放进去,你就可以轻松输出注册用户的信息,做一个带有分页的会员列表页面。