Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
WooCommece - Exclude a category from shop page
<?php
/**
* This code should be added to functions.php of your theme
**/
add_filter( 'parse_query', 'custom_parse_query' );
function custom_parse_query( $q ) {
if ( !$q->is_post_type_archive() ) return;
$q->set( 'tax_query', array(array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => array( 'tshirts' ),
'operator' => 'NOT IN'
)));
remove_filter( 'parse_query', 'custom_parse_query' );
}
?>

I tried it, but doesn't work. Any suggestions?

Owner

jameskoster commented Mar 13, 2012

Fraid not. Should work. Did you get the slug right? Post on our forum if you're stuck; http://www.woothemes.com/support-forum/?viewforum=150

It works! but it excludes all the products of the selected category from the back-end too! any idea?!

Owner

jameskoster commented Apr 28, 2012

Try adding an if (!is_admin) query around the remove_filter line.

fffffast! it works! but i've to put the '!is_admin' query around the whole function: if (!is_admin()){....}
Thanks for your help jameskoster!

This does work, but when I use the Product Category Shortocde [product_category category="test-category-name" per_page="9" columns="3" orderby="date" order="desc"]

The Products from the specified category do NOT list, instead products from another category display, without pagination ..

Any ideas?

thank you

could anyone pretty please see about getting this to work again, since last update this code no longer works. .i still see all categories on the home/shop page

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