Nie sądzę, że get_categories()
jest to najlepsza opcja dla Ciebie w tym przypadku, ponieważ zwraca ciąg ze wszystkimi kategoriami wymienionymi jako tagi kotwicy, dobrze do wyświetlania, ale nie jest świetny do zrozumienia w kodzie, jakie są kategorie. Ok, więc pierwszą rzeczą, którą musisz zrobić, to pobrać obiekt produktu / postu dla bieżącej strony, jeśli jeszcze go nie masz:
global $post;
Następnie możesz uzyskać obiekty terminu kategorii produktu (kategorie) dla produktu. Tutaj przekształcam obiekty terminów kategorii w prostą tablicę o nazwie, $categories
aby łatwiej było zobaczyć, jakie ślimaki są przypisane. Pamiętaj, że spowoduje to zwrócenie wszystkich kategorii przypisanych do produktu, a nie tylko tej z bieżącej strony, tj. Jeśli jesteśmy na /shop/audio/funzo/
:
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
Następnie musimy tylko sprawdzić, czy kategoria znajduje się na liście:
if ( in_array( 'audio', $categories ) ) { // do something
Kładąc wszystko razem:
<?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';
}
Mam nadzieję, że tego właśnie szukałeś i odpowiada na twoje pytanie.
)
? Powinno byćif (is_product_category('audio'))