Logo của Wordpress - giản thể

Code không hiển thị bài viết trong category nhất định trên trang chủ WordPress

Hôm trước anh Cường bạn của tôi có đề nghị tôi giúp không hiển thị các thông tin trong category tin tức lên trang chủ, để anh ấy dành chỗ cho các tin bán hàng, sau khi nghiên cứu hook Pre_get_posts tôi đã có thể làm được hàm sau, nếu các bạn cần không hiển thị category nào trên trang chủ thì tìm ID tương ứng mà điền vào nhé !

Code cho vào file functions.php:

function exclude_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'cat', '-284,-652,-653' );
    }
}
add_action( 'pre_get_posts', 'exclude_category' );

Các bạn lưu ý:

Các Cat ID không hiển thị sẽ có dấu “-” đằng trước, nếu các bạn muốn bỏ vài chục category thì cần phân cách bằng dấu phẩy nhé.

Cách tìm ID của category bất kì, các bạn vào trong BÀI ĐĂNG > CATEGORY sau đó dùng công cụ search tìm ra category bạn muốn, sau đó bạn edit, nhìn lên đường dẫn của Category đang edit và tìm tag_ID nhé, ví dụ:

/wp-admin/edit-tags.php?action=edit&taxonomy=category&tag_ID=5&post_type=post

Trong trường hợp có quá nhiều category bạn muốn loại bỏ khỏi trang chủ, tôi khuyên bạn nên làm ngược lại, chỉ include các category bạn muốn vào trang chủ bằng cách sau:

Code:

function exclude_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
        $query->set( 'cat', '12' );
    }
}
add_action( 'pre_get_posts', 'exclude_category' );

Hoặc cách tốt nhất là sử dụng WP_Query ở trang chủ, ta sẽ mở file index.php hoặc front-page.php lên, sau đó sử dụng query sau:

$the_query = new WP_Query( 'posts_per_page=8&cat=12' );

// The Loop
if ( $the_query->have_posts() ) {
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
        // vòng lặp //
    }
}
/* reset loop data */
wp_reset_postdata();

Như vậy WordPress của bạn sẽ chạy nhanh hơn rất nhiều so với hook vào Pre_get_posts nhé !

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

TÁC GIẢ:

Tôi là Jam, thâm niên 7 năm thiết kế website và làm SEO. Hãy theo dõi blog của tôi để nhận được nhiều chia sẻ thú vị xung quanh chủ đề công nghệ.

Có 5 bình luận !

  1. Mình là người không chuyên nghiệp. Xin bạn giúp mình với. Hôm nay mình gặp rắc rối, viết bài lên trang wordpress nhưng mở ra thì bài không hiện. Trong trang quản lý vẫn bình thường. Mày mò mãi chưa được. Mong bạn chỉ giúp. Trân trọng cám ơn!

  2. Mình làm theo cách chọn chức năng hiển thị bài viết trên trang chủ. Khi không chọn bất cứ bài nào thì số bài hiện lên chỉ là 10 thì nó đã phân trang sang trang thứ 2, khi chọn một vài bài quan trọng để đưa lên thì số bài hiện lên nhiều hơn 10 mới phân trang, làm cho website không được đẹp mắt cho lắm.
    Mình muốn hỏi bạn có cách nào để khắc phục điều này không? Mình dùng plugin pagenavi.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *