Knowledge Base

Table of Contents

Updated on May 18, 2023

Hide Woocommerce Categories from Shop page

Requirement

Sometime we need to hide a category from showing up on the Shop page. A good example is the “uncategorised” category. Maybe we have a category created for internal use only or foir filter.

Solution

Adding this code to your child theme’s functions.php file.

/**
 * Show products only of selected category.
 */
function get_subcategory_terms( $terms, $taxonomies, $args ) {
 
	$new_terms 	= array();
	$hide_category 	= array( 126 ); // Ids of the category you don't want to display on the shop page
 	
 	  // if a product category and on the shop page
	if ( in_array( 'product_cat', $taxonomies ) && !is_admin() && is_shop() ) {

	    foreach ( $terms as $key => $term ) {

		if ( ! in_array( $term->term_id, $hide_category ) ) { 
			$new_terms[] = $term;
		}
	    }
	    $terms = $new_terms;
	}
  return $terms;
}
add_filter( 'get_terms', 'get_subcategory_terms', 10, 3 );