Home WordpressWordPress cơ bản Tạo phân trang cho dữ liệu tùy chỉnh

Tạo phân trang cho dữ liệu tùy chỉnh

by admincp

Trong bài trước mình có hướng dẫn chi tiết tạo phân trang trong WordPress. Truy nhiên nếu bạn đang tạo post tùy chỉnh riêng cho nội dung của mình trên website, bạn sẽ cần hiển thị phân trang cho dữ liệu đó. Bài viết này mình sẽ hướng dẫn bạn cách tạo phân trang cho dữ liệu tùy chỉnh (Custom Post Type).

Để truy vấn dữ liệu, chúng ta có WP_Query và gọi hàm wp_reset_postdata() khi kết thúc vòng lặp.

Có một giải pháp đơn giản hơn mà bạn có thể thực hiện bằng cách sử dụng một hook mà WordPress cung cấp.

Tạo phân trang cho Custom Post Type

Chúng ta sẽ sử dụng hook pre_get_posts, để lọc dữ liệu theo ý muốn. Hàm hook này truyền một tham số chứa rất nhiều thông tin về query, nhưng có 2 thông số bạn cần để ý là post_typeposts_per_page.

<?php
use WP_Query;
add_action('pre_get_posts', __NAMESPACE__ . '\customPostTypePagination');
/**
 * If we're on the 'acme-post-type' page, then adjusts pagination so there are only two posts per page. This will 
 * affect pagination so we can use built-in pagination links to easily page through the content.
 *
 * @param WP_Query the instance of the query object that contains information to populate the template.
 *
 * @return WP_Query an unmodified version of the query object or a modified version if we're on the acme post-type.
 */
function customPostTypePagination(WP_Query $query)
{
  if (isset($query->query['post_type']) && 'acme-post-type' == $query->query['post_type']) {
    $query->set('posts_per_page', 2);
  }
}

Bằng cách giới hạn số lượng posts trên một phân trang với tham số posts_per_page, bạn có thể giảm dung lượng query khi trả về một dữ liệu lớn sẽ làm chậm website.

Để biết cách làm rõ hơn, xem tiếp hướng dẫn tạo phân trang trong WordPress.

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên TwitterFacebook

Liên hệ

Công ty chuyên Thiết kế website uy tín nhất Miền Bắc: http://vinastar.net

Hotline tư vấn: 0989 48 3456

Nguồn: Sưu tầm trên internet

You may also like

Leave a Comment