В этой статье Вы узнаете, как исключить (не отображать) товары подкатегории на странице товаров родительской категории используя плагин Woocommerce.
В файле functions.php своей темы (если есть дочерняя, то в ней) внесите этот код:
/* Исключаем показ товаров из родительских категорий, если они не отмечены */
function exclude_product_cat_children_wplife($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_wplife');
После внесения кода, должно соблюдаться еще одно условие, для того чтобы товары исключились — они не должны быть отмечены в этой самой категории. По сути код работает так, показывает товары в тех категориях, в которых товар явно отмечен в иерархии. Если все условия будут соблюдены, то просматривая родительскую категорию, посетители увидят товары которые отмечены в этой категории, а не собирая все товары из подкатегорий.