Hiển thị danh sách Author với phân trang [WordPress]

Quảng cáo
Ads_ngang
Website dinhthuanit.com có bài Hiển thị danh sách Author với phân trang [WordPress]

WordPress template tags cho phép bạn tùy biến hiển thị dữ liệu của website mà không cần đến plugin hỗ trợ. Trong bài viết này mình sẽ chỉ cho những bạn cách tạo custom page hiển thị danh sách users sử dụng các hàm template tag và có phân trang.

Tạo custom page

Trước tiên, bạn cần tạo một custom page là file template cũng đều có thể trò vào nội dung page, bạn tạo file PHP trong thư mục theme, giả sử file có tên ‘page-users.php’. Thêm các dòng khai báo tên template vào file:

  <?php /* Template Name: User Page */  

Trong cửa sổ tạo trang mới, bạn chọn template ‘User Page’ cho trang sẽ liệt kê tác giả.
set-template[1]

Chúng ta cần tạo một vài thông số cho phân trang users, thêm vào file PHP các loại sau:

 $number = 10; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $offset = ($paged - 1) * $number;  

Mình thiết lập tổng số users hiển thị trên một phân trang vào biến $number.
Khác với cách tạo phân trang trong wordpress sử dụng $wpdb. Nếu viết trực diện lệnh SQL bạn được phép dùng biến SQL_CALC_FOUND_ROWS và đơn giản lấy giá trị biến này sau khi thi hành sql.
Trong trường hợp này bạn cần gọi 2 lần hàm get_users , trước mắt lấy tổng số users bằng hàm php count() .

 $users = get_users(); $total_users = count($users);  

Sau đó, chúng ta giới hạn dữ liệu users trên phân trang yêu cầu, sử dụng tham số offset . Khác với get_posts, WP_Query sử dụng tham số posts_per_page để giới hạn dữ liệu trả về trên một phân trang.

 $query = get_users('&offset='.$offset.'&number='.$number);  

Và thuật toán đếm tổng cộng trang dựa theo tổng cộng dòng và số dòng trên một trang, cũng sẽ được sử dụng. Thêm tiếp dòng sau:

 $total_pages = intval($total_users / $number) + 1;  

Hiển thị Users

Bây giờ đến qui trình hiển thị tin tức của mỗi user trong trang kết quả. Ví dụ mình sẽ cho hiển thị một vài trường lấy từ user như: avatar, full name, biography. Lấy những tin tức này bởi các hàm template tags: get_avatar , get_the_author_meta .

 echo ' 
    '; foreach($query as $q) { ?>
  • ID, 80 ); ?>

    ID);?>

    ID) != '') : ?>

    ID); ?>

  • <?php } echo '
';

Tạo phân trang

Chắc chắn bạn không lúc nào muốn hiển thị gần 100 users trên một trang, vì thế chúng ta sẽ tạo liên kết phân trang và tách ra nhiều trang kế tiếp. Thêm vào đó, chúng ta sẽ chỉ hiển thị phân trang nếu mà tổng cộng user đã đăng ký lớn hơn con số yêu cầu hiển thị trên một trang. Để làm điều này, bạn sử dụng hàm paginate_links

    $total_query) { echo ' 
'; echo ' Pages: '; $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 '
'; } ?>

Trang trí thêm CSS kết quả hiển thị trông đẹp hơn.
user-list-pagination
Good luck!

Nếu bạn thích bài viết này, hãy ủng hộ chúng tôi bằng cách đăng ký nhận bài viết mới ở bên dưới và hãy nhớ chia sẻ kiến thức này với bạn bè của bạn nhé. Bạn cũng cũng đều có thể theo dấu blog này trên Twitter và Facebook

Bài viết Hiển thị danh sách Author với phân trang [WordPress] được tổng hợp và biên tập bởi: dinhthuanit.com. Mọi ý kiến đóng góp và phản hồi vui lòng gửi Liên Hệ cho dinhthuanit.com để điều chỉnh. dinhthuanit.com xin cảm ơn.

Bài Viết Liên Quan


Bài Viết Khác


Quảng cáo
Ads_ngang