Wordpress Dev

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 …

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 !

Thông tin liên quan