Non penso che get_categories()sia l'opzione migliore per te in questo caso perché restituisce una stringa con tutte le categorie elencate come tag di ancoraggio, va bene per la visualizzazione, ma non è grande per capire nel codice quali sono le categorie. Ok, quindi la prima cosa che devi fare è prendere l'oggetto prodotto / post per la pagina corrente se non l'hai già:
global $post;
Quindi è possibile ottenere gli oggetti termine categoria prodotto (le categorie) per il prodotto. Qui sto trasformando i termini della categoria oggetti in un semplice array chiamato in $categoriesmodo che sia più facile vedere quali slug sono assegnati. Nota che questo restituirà tutte le categorie assegnate al prodotto, non solo quella della pagina corrente, ovvero se siamo su /shop/audio/funzo/:
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
Quindi non ci resta che verificare se una categoria è nell'elenco:
if ( in_array( 'audio', $categories ) ) { // do something
Mettere tutto insieme:
<?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';
}
Spero che questo sia quello che stavi cercando e risponda alla tua domanda.
)? Dovrebbe essereif (is_product_category('audio'))