В панели управления Wordpress я перешел по ссылкам ниже, чтобы настроить параметр отображения категорий глобально.
Внешний вид -> Настройка -> Woocommerce -> Каталог товаров -> Отображение категорий
Доступны три варианта отображения.
- Показать продукты
- Показать подкатегории
- Показать подкатегории и продукты
Однако , я хочу исключить все продукты из подкатегорий.
Другими словами, я хочу показывать подкатегории и продукты только в родительских категориях.
Я обнаружил следующее фрагмент на нескольких обучающих сайтах. Код работает именно так, как я хочу, но он также отключает функцию поиска и фильтрации продуктов администратора (все равно он не возвращает никаких результатов).
Есть идеи, почему это происходит?
Код: Выделить всё
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');
Подробнее здесь: https://stackoverflow.com/questions/497 ... subcategor