Как скрыть товары дочерних категорий на странице родительской категории в WooCommerce
7579 0 Wordpress

Как скрыть товары дочерних категорий на странице родительской категории в WooCommerce

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(0 голосов, в среднем: 0 из 5)

По умолчанию на странице категории выводятся товары как самой категории, так и товары всех её дочерних категорий. Исключим вывод товаров вложенных категорий.

На этом скриншоте показана страница категории «тест», которая содержит подкатегорию — «вложенный тест». Сейчас на странице одновременно выводятся товары из обеих категорий.

Чтобы скрыть товар вложенной категории, нам необходимо изменить запрос страницы категории «тест». Для этого воспользуемся хуком pre_get_posts и классом WP_Query.

Применим следующий сниппет:

function exclude_products_from_child_cats( $wp_query ) {
	if ( ! is_admin() && $wp_query->is_main_query()) {
		if (isset( $wp_query->query_vars['product_cat'] )) {
			$tax_query = array(
				array(
					'taxonomy' => 'product_cat',
					'field' => 'slug',
					'terms' => $wp_query->query_vars['product_cat'],
					'include_children' => false
				)
			);
			$wp_query->set( 'tax_query', $tax_query );
		}
	}
}

add_filter( 'pre_get_posts', 'exclude_products_from_child_cats' );

Теперь будут выводится относящиеся только к отображаемой категории, без учета вложенных.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

9 + 6 =

Top