Hướng dẫn tạo phân trang cho custom wp_query

Trong wordpress, phân trang là một tác vụ rất quan trọng và thường xuyên sử dụng. Thế nhưng, mặc định của wp lại không hỗ trợ hàm sẵn cho việc phân trang dữ liệu lấy từ những truy vấn do bạn tự custom. Ví dụ: Nếu bạn truy vấn cho custom post type chẳng hạn…

Bước 1: Tạo biến $paged

$paged = ( get_query_var( ‘paged’ ) ) ? absint( get_query_var( ‘paged’ ) ) : 1;

Bước 2: Thêm $paged vào câu query

$args = array(
        ‘post_status’        => ‘publish’,
        ‘post_type’           => ‘post’,
        ‘cat’                      => 97,
        ‘posts_per_page’ => 9,
        ‘paged’                => $paged,
    );

Bước 3: Gọi hàm phân trang

<?php
        $big = 999999999; // need an unlikely integer
        echo paginate_links( array(
            ‘base’ => str_replace( $big, ‘%#%’, ‘/danh-muc/danh-muc-con%_%’ ),
            ‘format’ => ‘/paged/%#%’,
            ‘current’ => max( 1, get_query_var(‘paged’) ),
            ‘total’ => $getposts->max_num_pages
        ) );
        echo 1;
?>
Đoạn bôi đỏ là đường dẫn của bạn

Các tài liệu tham khảo

Cấu trúc hàm paginate_links và các ví dụ sử dụng: https://lienket.vn/otntq

Trong phần giải thích của hàm có ví dụ về tham số base như hình sau, các bạn cần chú ý chỗ này.

Trong hàm paginate_links có sử dụng hàm get_pagenum_link và hàm này cần chú ý nên bạn có thể đọc kỹ tại đây: https://lienket.vn/pzaz4

5/5 - (1 bình chọn)