Thuộc tính offset trong trang chuyên mục bài viết – WP_Query

Cập nhật lần cuối 17/04/2024 by trong WordPress vào 23/06/2023 có 545 Views

Với nhiều yêu cầu khác nhau. Đôi khi cần sử dụng tới offset đối với main query trong trang chuyên mục bài viết nhưng không đơn giản là hook và pre_get_posts rồi thêm offset là xong. Nó sẽ dẫn tới sai hàm phân trang

Vậy đoạn code dưới đây sẽ giúp bạn việc đó. Cụ thể như trong code là offset 4 bài viết mới nhất trong trang chuyên mục

Thêm code này vào functions.php của theme bạn đang kích hoạt nhé

Để duy trì blog nên mình có làm aff cho 1 số bên hosting. Nhưng dù aff mình cũng chọn 1 số nhà cung cấp uy tín về chất lượng và support nên các bạn cứ yên tâm nhé.

Nếu có mua hosting mà có trong list dưới đây các bạn click vào link trước khi mua để ủng hộ mình nhé. Mình cảm ơn nhiều

/*offset in category*/
function offset_category_posts( $query ) {
    if ( $query->is_main_query() && is_category() && ! is_admin()) {
        $offset = 4;
        $paged = get_query_var('paged', 1);
        $posts_per_page = get_option('posts_per_page');
        $offset = ($paged - 1) * $posts_per_page + $offset;
        $query->set( 'offset', $offset );
    }
}
add_action( 'pre_get_posts', 'offset_category_posts' );

function found_offset( $found_posts, $query ) {
    $offset = 4;
    if( !is_admin() && is_category() && $query->is_main_query() ) {
        $found_posts = $found_posts - $offset;
    }
    return $found_posts;
}
add_filter( 'found_posts', 'found_offset', 10, 2 );
/*#offset in category*/

Trong code trên bạn thấy $offset = 4; nghĩa là trong main query của trang chuyên mục bài viết sẽ loại 4 bài viết mới nhất, hãy bằng số mà bạn muốn là được

Chúc các bạn thành công!

5/5 - (1 vote)
  • Bình luận
Sản phẩm nổi bật của Toản
x