Как сделать проверку на категорию и дочерние категории Woocommerce?

Всего на сайте 3 главных категории, у них есть дочерние подкатегории. Цель: вывести в шапке разные лого. Например категория 1 и ее дочерние - 1 лого Категория 2 и дочерние - 2 лого И 3-я так же. Как сделать проверку когда находишься на странице категории? Пробовал условие is_product_category, оно работает только для той категории, которую укажешь, а нужно, чтобы проверяло родительскую категорию и ее дочерние.


Ответы (1 шт):

Автор решения: WP Punk

Чтобы проверить что вы находитесь на странице категории вам нужно использовать ф-цию is_product_category. Чтобы проверить конкретную категоирию:

if ( is_product_category( 10 ) ) { // Эта страница для категории с id - 10.
    // Your code.
}
if ( is_product_category( 'awesome-category' ) ) { // Эта страница для категории с slug'ом - awesome-category.
    // Your code.
}

Теперь. Чтобы проверить, что это не только текущая категории но и дочерняя, можно использовать функцию term_is_ancestor_of . Для получения id текущего поста или категории используйте функцию get_queried_object_id:

if ( term_is_ancestor_of( 10, get_queried_object_id() ) ) { // Эта категория дочерняя для категории с ID - 10.
    // Your code.
}

И теперь все условие вместе:

if ( is_product_category( 10 ) || term_is_ancestor_of( 10, get_queried_object_id() ) ) {
// Your code.
}

https://developer.wordpress.org/reference/functions/is_product_category/ https://developer.wordpress.org/reference/functions/term_is_ancestor_of/ https://developer.wordpress.org/reference/functions/get_queried_object_id/

→ Ссылка