Cách tạo phân trang pagination bằng plugins WP-PageNavi trong WordPress

Như ở bài trước Thịnh có chia sẻ cách tạo phân trang paination nhưng nó không phải ở dạng số mà ở dạng text không sử dụng plugins, nhưng ở bài này Thịnh chia sẻ với các bạn cách tạo phân trang trong wordpress hiển thị dạng số. Cách hiển thị dạng số này bắt buộc bạn cần phải sử dụng plugins WP-PageNavi.

Với plugins WP-PageNavi khá là quen thuộc đối với cộng đồng lập trình viên trên nền tảng wordpress bởi tính tiện dụng của nó cũng như bạn có thể điều chỉnh thông số phân trang tùy theo ý thích của các bạn. Nhưng không phải bạn cài plugin WP-PageNavi xong là được mà bạn cần phải thích hợp vào theme website sử dụng mã nguồn mở wordpress thì bạn mới sử dụng được.

Nếu như bạn chưa thích hợp vào thì hãy làm theo cách làm sau đây.

Bước 1: Bạn cần cài đặt plugin WP-PageNavi trong phần “gói mở rộng” và sau đó kích hoạt nó.

Price: Free

Bước 2: Bạn tiến hành khai báo function thinhweb_pagination hoặc tên bạn muốn với thông số như sau.


// Ham tao phan trang

if (!function_exists( 'thinhweb_pagination' )){

    function thinhweb_pagination(){

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

            <?php if ( function_exists('wp_pagenavi') ): ?>

            <?php wp_pagenavi(); ?> // phan hien thi theo plugins wp-pagenavi

            <?php else: ?>
                <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 endif; ?>

       <?php }
}

Ý nghĩ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 nó điều kiện lấy wp_pagenavi theo thông số của plugins WP-PageNavi để hiển thị. Nếu như nó không tồn tại thì nó sẽ quay về dạng phân trang dạng text như ở bài trước.
  • thinhweb sẽ là phần khai báo textdomain trong file style.css.

Để hiển thị ngoài site thì nó cũng tương tự như ở bài trước:


<?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(); ?>

Như vậy là xong, cách làm cũng tương tự như cách tạo phân trang không sử dụng page. Đặc điểm của việc sử dụng plugins là bạn có được phân trang dạng số đẹp hơn và thuận tiện hơn cho con bọ tìm kiếm. Cách khai báo thì bạn chỉ thêm điều kiện vào phần tạo phân trang không sử dụng plugin để nó có điều kiện nếu tồn tại wp-pagenavi thì hiển thị, nếu không có thì hiển thị lệnh tiếp theo và kết thúc quá trình lặp.