cách khắc phục lỗi phân trang trong plugin wp-pagenavi với custom post type
trong dự án của trang “shah.vn” tôi gặp lại những vấn đề cũ đó chính là lỗi trong plugin wp-pagenavi chính là lỗi phân trang khi ta muốn điều chỉnh số lượng bài post trong query, mặc định plugin này vẫn hiểu số lượng bài post với cấu hình trong admin của website.
ví dụ ta có một query như sau đối với một custom post type:
$args = array('post_type' => 'home-decor', 'posts_per_page' => 30);
query_posts($args);
thì khi trả về kết quả thì số sản phẩm trên trang sẽ hiện không đúng, tôi nhớ trong một bài viết tôi đã hướng dẫn các bạn khắc phục bằng cách sử dụng hàm phân tích trang trong wordpress đối với post, nay tôi hướng dẫn các bạn một cách khác đơn giản hơn rất nhiều, các bạn khai báo đoạn query như sau:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$termid = get_queried_object()->term_id;
$que = array(
array(
'taxonomy' => 'decor',
'terms' => $termid,
'field' => 'id',
),
);
$args = array('post_type' => 'home-decor', 'posts_per_page' => 30, 'paged'=> $paged, 'tax_query' => $que);
query_posts($args);
trong đoạn code trên có 2 phần bạn cần đáng chú ý:
1. phần lấy thông tin trang hiện tại bạn đang đứng rất đơn giản, đây là một câu lệnh trong worpress.
2. query lấy để lấy taxonomy hiện tại, nếu không có dòng này nó sẽ hiện tất cả các sản phẩm trong Custom Post Type “home-decor”. Đây là câu lệnh cơ bản để làm nhiều công việc khác bạn muốn như: lấy tất cả các sản phẩm khuyển mãi, tất cả các sản phẩm Hot…
nếu bạn nào chưa biết về Custom Post Type và Taxonomy là gì thì bạn có thể tìm hiểu tại đây