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

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ách gọi file js và file css trong wordpress

HTML, CSS, Javascript là một trong những thứ cực kỳ quan trọng cho bất kỳ website nào. Để tạo lên một website đẹp thì không thể thiếu các thành phần quan trọng đó để làm vẻ đẹp bên ngoài khi người dùng truy cập tới website. Nếu như bạn đang sử dụng mã nguồn mở […]

Xem chi tiết →

Hướng dẫn tạo nút Back To Top cho website của bạn

Nút Back To Top hay còn gọi một cách đơn giản là nút trượt lên trên khi bạn đang ở cuối website. Nhưng nếu như bạn đang sử dụng framework thì sẽ có một số framework có sẵn nhưng đa phần thì cái này sẽ loại khỏi bộ framework bởi độ ưu tiên cao cũng […]

Xem chi tiết →