Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
This snippet will exclude all products from any categories which you choose from displaying on the WooCommerce Shop page.
function custom_pre_get_posts_query( $q ) {
$tax_query = (array) $q->get( 'tax_query' );
$tax_query[] = array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'clothing' ), // Don't display products in the clothing category on the shop page.
'operator' => 'NOT IN'
);
$q->set( 'tax_query', $tax_query );
}
add_action( 'woocommerce_product_query', 'custom_pre_get_posts_query' );
@wmind
Copy link

wmind commented Jul 25, 2020

Hello there,
the code does work pretty well but it seems that this affects some of my other pages as well.
My site is a marketplace one and each seller has his own store page. These changes of hiding the categories takes effect on those pages as well.
How can I make it to be displayed only on a specific page?
I am new to php so I need some help please!

@marcelkraan
Copy link

marcelkraan commented Oct 20, 2020

I like to use the code for an adult section that must be hidden from the home page.
But it must be possible to do an order? is that possible?

category "Adult" must be hidden from the main page. But when you search or click on an other page then it must be visible

Is that an option to fix?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment