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 23/06/2023 by trong WordPress vào 23/06/2023 có 78 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é

/*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_action( '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