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 $categories
modo 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'))