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' );