Как в мире я могу проверить, находится ли продукт в определенной товарной категории на single-product.php ?
<?php if (is_product_category('audio')) {
echo 'In audio';
woocommerce_get_template_part( 'content', 'single-product' );
} elseif (is_product_category('elektro')) {
echo 'In elektro';
woocommerce_get_template_part( 'content', 'single-product' );
} else {
echo 'some blabla'; } ?>
is_product_category ('slug') не влияет на одиночный product.php . Я хочу иметь верхние условия. Любое решение для этого на странице одного продукта?
)
? Так и должно бытьif (is_product_category('audio'))
Ответы:
Я не думаю, что
get_categories()
это лучший вариант для вас в этом случае, потому что он возвращает строку со всеми категориями, перечисленными в качестве тегов привязки, отлично подходит для отображения, но не очень хорошо для определения в коде, что такое категории. Итак, первое, что вам нужно сделать, это взять объект product / post для текущей страницы, если у вас его еще нет:Затем вы можете получить термины объекты категории товаров (категории) для товара. Здесь я превращаю термин «объекты категории» в простой именованный массив,
$categories
чтобы было легче увидеть, какие слагы назначены. Обратите внимание, что это вернет все категории, назначенные продукту, а не только одну из текущей страницы, т.е. если мы находимся/shop/audio/funzo/
:Тогда мы просто должны проверить, есть ли категория в списке:
Собираем все вместе:
Надеюсь, это то, что вы искали и отвечает на ваш вопрос.
источник
has_term
должно работать в этом случае:источник
if { thing; return;}
Стоит отметить, что вы можете просматривать список опций, вызывая массив, вместо того, чтобы загромождать свой код множеством проверок elseif, предполагая, что вы хотите сделать то же самое с каждой категорией.
источник
Это старый, но на тот случай, если люди все еще считают WooThemes простым решением:
* Измените your_category на то, что вы используете.
Вот ссылка на документацию: https://docs.woothemes.com/document/remov-product-content-based-on-category/
источник
Я бы посмотрел на использование
get_categories()
функции класса WC_Product.Вы можете найти ссылку на документацию здесь .
По сути, внутри цикла страницы вызывается функция, возвращающая категории, связанные с продуктом.
источник