Not display some category products on the shop page

Category name(‘shirt’, ‘tshirt’, ‘pant’) which not to want display products on the shop page

add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );

function custom_pre_get_posts_query( $q ) {

if ( ! $q->is_main_query() ) return;
if ( ! $q->is_post_type_archive() ) return;

if ( ! is_admin() && is_shop() && ! is_user_logged_in() ) {

$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'shirt', 'tshirt', 'pant' ), //Category name which not to want display products on the shop page
'operator' => 'NOT IN'
)));

}

remove_action( 'pre_get_posts', 'custom_pre_get_posts_query' );

}

Leave a Reply