TODO: To change the header's content go to Dr.Explain menu Options : Project Settings : HTML (CHM) Export : Setup HTML Template and Layout
×
Menu
Index

Liệt kê danh sách users có phân trang

 
Khác với kiểu dữ liệu post type, lưu ở bảng wp_posts. Dữ liệu users chứa trong bảng wp_users chúng ta có hàm truy xuất dữ liệu get_users().
Nếu website bạn thuộc dạng thành viên membership cho người dùng đăng ký, bạn cần tạo trang thống kê danh sách users có phân trang. Ở đây chúng ta không sử dụng tham số 'posts_per_page', 'page' thay vào đó là tham số 'offset' & 'number'.
$number = 10;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$offset = ($paged - 1) * $number;
 
$users = get_users();
$total_users = count($users); 
 
$query = get_users('&offset='.$offset.'&number='.$number);
$total_pages = intval($total_users / $number) + 1;
 
Xác định tổng số trang bởi công thức:
intval(tổng số users/chỉ số trang hiện tại) + 1
 
Hiển thị danh sách users sử dụng vòng lặp foreach.
//display users
echo '<ul id="users">'; 
foreach($query as $q) { ?> 
                  
    <li class="user clearfix"> 
        <div class="user-avatar"> 
            <?php echo get_avatar( $q->ID, 80 ); ?>     
        </div> 
        <div class="user-data"> 
  
            <h4 class="user-name"> 
                <a href="<?php echo get_author_posts_url($q->ID);?>"> 
                    <?php echo get_the_author_meta('display_name', $q->ID);?> 
                </a> 
            </h4> 
  
            <?php if (get_the_author_meta('description', $q->ID) != '') : ?> 
                <p><?php echo get_the_author_meta('description', $q->ID); ?></p> 
            <?php endif; ?> 
  
        </div> 
    </li> 
  
<?php }  
echo '</ul>';
 
Giống với cách thực hiện tạo liên kết phân trang cho dữ liệu posts, chúng ta sẽ sử dụng hàm paginate_links().
<?php
    if ($total_users > $total_query) {
        echo '<div id="pagination" class="clearfix">';
        echo '<span class="pages">Pages:</span>';
          $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
                'prev_next'    => false,
                'type'         => 'list',
            ));
        echo '</div>';
    }
?> 
 
Kết quả:
 
Made with help of Dr.Explain

Unregistered version