Я не думаю, что get_categories()
это лучший вариант для вас в этом случае, потому что он возвращает строку со всеми категориями, перечисленными в качестве тегов привязки, отлично подходит для отображения, но не очень хорошо для определения в коде, что такое категории. Итак, первое, что вам нужно сделать, это взять объект product / post для текущей страницы, если у вас его еще нет:
global $post;
Затем вы можете получить термины объекты категории товаров (категории) для товара. Здесь я превращаю термин «объекты категории» в простой именованный массив, $categories
чтобы было легче увидеть, какие слагы назначены. Обратите внимание, что это вернет все категории, назначенные продукту, а не только одну из текущей страницы, т.е. если мы находимся /shop/audio/funzo/
:
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
Тогда мы просто должны проверить, есть ли категория в списке:
if ( in_array( 'audio', $categories ) ) { // do something
Собираем все вместе:
<?php
global $post;
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
if ( in_array( 'audio', $categories ) ) {
echo 'In audio';
woocommerce_get_template_part( 'content', 'single-product' );
} elseif ( in_array( 'elektro', $categories ) ) {
echo 'In elektro';
woocommerce_get_template_part( 'content', 'single-product' );
} else {
echo 'some blabla';
}
Надеюсь, это то, что вы искали и отвечает на ваш вопрос.
)
? Так и должно бытьif (is_product_category('audio'))