Я не думаю, що get_categories()
це найкращий варіант для вас у цьому випадку, оскільки він повертає рядок із усіма категоріями, переліченими як прив’язні теги, прекрасні для відображення, але не чудові для з'ясування в коді, що таке категорії. Гаразд, тому перше, що вам потрібно зробити, - це захопити об'єкт продукт / пост для поточної сторінки, якщо у вас його ще немає:
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'))