Machmal ist es gewünscht, dass Produkte einer bestimmten Produkt-Kategorie nicht auf der Shop-Seite ausgespielt werden sollen, sondern nur auf den Produkt-Kategorieseiten.

Mit Hilfe des folgenden Snippets ist dies möglich. Produkte, denen die Kategorie mit dem Slug „clothing“ zugeordnet ist, werden nicht mehr auf der Shop-Seite ausgespielt.

Das Snippet ist wie üblich in die functions.php zu kopieren.

// Quelle: https://docs.woocommerce.com/document/exclude-a-category-from-the-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' );