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

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


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

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

Чтобы скрыть товар вложенной категории, нам необходимо изменить запрос страницы категории «тест». Для этого воспользуемся хуком 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' );

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

По теме: (Wordpress)

Оставить отзыв

Ваш адрес email не будет опубликован.

*
*

15 − 15 =

Читайте также
Top