14 Tháng 11, 2016 Tác giả: Thịnh Nguyễn Chuyên mục: WordPress Themes

Hướng dẫn tạo phân trang pagination trong WordPress

phan-trang-page

Phân trang cho một website là điều khá là quan trọng, bởi khi số lượng bài hiển thị vượt quá giới hạn cho phép theo cấu hình “Đọc” trong trang quản trị của website thì bạn cần phải phân trang cho website để người truy cập có thể sang các trang tiếp theo để coi các bài viết cũ.

Chính vì vấn đề phân trang pagination mà wordpress đã cung cấp cho chúng ta các hàm có sẵn giúp cho lập trình viên thuận tiện trong việc viết plugins, themes. Ngoài việc phân trang giúp người dùng dễ tìm kiếm chuyển trang sang trang tiếp theo để đọc bài viết cũ mà nó còn giúp cho con bọ của google hay bất kỳ công cụ tìm kiếm nào cũng dễ dàng đi sâu vào website của bạn để lập chỉ mục.

Nếu như các bạn chưa biết cách tạo phân trang trong wordpress thì ở bài này Thịnh chia sẻ cách xử lý với các bạn để bạn có cái nhìn đơn giản về quá trình tạo phân trang trong wordpress. Tuy nhiên ở bài sau mình sẽ chia sẻ cách dùng plugins để tạo phân trang thuận tiện hơn mà cũng đẹp hơn.

Trước tiên để tạo phân trang bạn cần thiết lập cho nó một hàm mới với tên gọi của bạn.


// Ham tao phan trang

if (!function_exists( 'thinhweb_pagination' )){

function thinhweb_pagination(){

    if ( $GLOBALS['wp_query']->max_num_pages <2 ){ return ''; } ?>

        <nav class="pagination" role="navigation">

            <?php if ( get_next_posts_link() ) : ?>

                <div><?php next_posts_link( __('Older Posts', 'thinhweb') ); ?></div>

            <?php endif; ?>

            <?php if ( get_previous_posts_link() ) :?>

                <div ><?php previous_posts_link(__('Newest Posts', 'thinhweb') ); ?></div>

            <?php endif; ?>

        </nav>

<?php }
}

Ý nghĩa cụ thể của đoạn code trên như sau.

  • Khai báo function: thinhweb_pagination.
  • Kiểm tra nếu $GLOBALS[‘wp_query’] mà được gán bằng với max_num_pages và nhỏ hơn 2 thì nó sẽ quay (return) trở lại không thực thi lệnh tiếp theo.
  • Nếu nó mà bằng hoặc lớn hơn 2 thì bắt đầu thực hiện lệnh phía dưới.
  • Tiếp theo sẽ là kiểm tra tính tồn tại của “get_next_posts_link” và “get_previous_posts_link” thì sẽ thực thi hiển thị “next_posts_link” và “previous_posts_link” theo tên của bạn và phải theo textdomain mà bạn khai báo trong file style.css.

Sau khi bạn đã có hàm tạo phân trang do bạn viết ra thì bạn cần phải cho nó hiển thị ra ngoài.

Ví dụ


<?php if ( have_posts() ) : while( have_posts() ) : the_post(); ?>

// code gọi nộ dùng của vòng lặp while

<?php endwhile ?>

<?php thinhweb_pagination(); ?>

Bạn đặt nó ngay sau khi kết thúc vòng lặp while như ví dụ ở trên. Như vậy tại đây sau danh sách các bài viết nó sẽ hiển thị phần phân trang. Ngoài ra bạn cũng có thể đặt trước vòng lặp while theo cách trình bày của bạn.

Đó là cách làm phân trang bằng text thay vì bằng số. Ở bài sau mình sẽ hướng dẫn các bạn làm phân trang bằng chữ số.

Tác giả: Thịnh Nguyễn

Chuyên gia chia sẻ kiến thức về lập trình, thiết kế web và tối ưu hệ thống server.

Chia sẻ bài viết này:

0 bình luận

Để lại bình luận của bạn

Địa chỉ email của bạn sẽ không được công bố rộng rãi. Các trường bắt buộc được đánh dấu *

Bài viết liên quan

Cách tích hợp theme mobile wordpress vào theme chính

Theme wordpress hiện nay khá phong phú cho các bạn lựa chọn, tuy nhiên có một số khách hàng họ lại muốn có cả theme mobile và theme desktop. Chính vì điều này mà nhiều bạn sử dụng cách làm không mấy tiện lợi đó là làm ra 2 theme riêng biệt và dùng một […]

Xem chi tiết →

Sử dụng Google Font làm Font cho website của bạn

Trong quá trình thiết kế website chắc hẳn bạn sẽ gặp những website có những font chữ uốn lượn! Đó là do chủ đích của chủ sở hữu website muốn thiết kế như vậy và khiến cho người vẽ giao diện cũng phải chiều theo ý muốn. Tuy nhiên có một điều là không phải […]

Xem chi tiết →

Hướng dẫn cài đặt themes wordpress cho website của bạn

WordPress là một trong những mã nguồn mở nổi tiếng hiện nay và mức độ phổ biến nó cũng khá là cao với kho ứng dụng đồ sộ cho bạn tha hồ lựa chọn cả miễn phí lẫn có phí. Chính vì mức độ phổ biến đó mà cộng đồng wordpress đã cho ra đời […]

Xem chi tiết →