Ich denke nicht, dass get_categories()
dies in diesem Fall die beste Option für Sie ist, da eine Zeichenfolge mit allen als Ankertags aufgelisteten Kategorien zurückgegeben wird, die zwar gut zum Anzeigen, aber nicht gut zum Herausfinden der Kategorien im Code geeignet ist. Ok, das erste, was Sie tun müssen, ist das Produkt / Post-Objekt für die aktuelle Seite zu greifen, wenn Sie es noch nicht haben:
global $post;
Dann können Sie die Produktkategorie-Begriffsobjekte (die Kategorien) für das Produkt erhalten. Hier verwandle ich die Kategoriebegriffsobjekte in ein einfaches Array mit dem Namen, $categories
damit leichter erkennbar ist, welche Slugs zugewiesen sind. Beachten Sie, dass dies alle dem Produkt zugewiesenen Kategorien zurückgibt, nicht nur die der aktuellen Seite, dh wenn wir eingeschaltet sind /shop/audio/funzo/
:
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
Dann müssen wir nur noch prüfen, ob eine Kategorie in der Liste enthalten ist:
if ( in_array( 'audio', $categories ) ) { // do something
Alles zusammenfassen:
<?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';
}
Hoffentlich haben Sie danach gesucht und Ihre Frage beantwortet.
)
? Es sollteif (is_product_category('audio'))