Navegar por productos en una categoría y que no salga ningún resultado de las categorías en woocommerce. En una tarea tan sencilla como esta, a veces encontrar una solución rápida es complicada. Buscas por internet y salen mil plugins, algunos de pago o con funciones que no necesitamos y que solo empeoran la velocidad de nuestro sitio.
Para excluir los productos de la subcategoría que navegamos es tan sencillo como añadir el siguiente código al functions.php de nuestro tema:
function exclude_product_cat_children($wp_query) {
if ( isset ( $wp_query->query_vars['product_cat'] ) && $wp_query->is_main_query()) {
$wp_query->set('tax_query', array(
array (
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => $wp_query->query_vars['product_cat'],
'include_children' => false
)
)
);
}
}
add_filter('pre_get_posts', 'exclude_product_cat_children');
Guardamos y ya estaría, sin más, ya hemos excluido del listado los productos de las subcategorías y tenemos nuestro woocommerce más organizado.