Wie in aller Welt kann ich auf der single-product.php überprüfen, ob ein Produkt einer bestimmten Produktkategorie angehört ?
<?php if (is_product_category('audio')) {
echo 'In audio';
woocommerce_get_template_part( 'content', 'single-product' );
} elseif (is_product_category('elektro')) {
echo 'In elektro';
woocommerce_get_template_part( 'content', 'single-product' );
} else {
echo 'some blabla'; } ?>
is_product_category ('slug') hat keinen Einfluss auf die single-product.php . Ich möchte die oberen Bedingungen haben. Gibt es dafür eine Lösung auf einer einzigen Produktseite?
)
? Es sollteif (is_product_category('audio'))
Antworten:
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: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/
:Dann müssen wir nur noch prüfen, ob eine Kategorie in der Liste enthalten ist:
Alles zusammenfassen:
Hoffentlich haben Sie danach gesucht und Ihre Frage beantwortet.
quelle
has_term
sollte in diesem Fall funktionieren:quelle
if { thing; return;}
Es ist erwähnenswert, dass Sie eine Liste von Optionen durchgehen können, indem Sie ein Array aufrufen, anstatt Ihren Code mit vielen elseif-Überprüfungen überladen zu müssen, vorausgesetzt, Sie möchten für jede Kategorie dasselbe tun.
quelle
Dies ist alt, aber nur für den Fall, dass die Leute WooThemes immer noch als einfache Lösung betrachten:
* Ändere 'your_category' zu dem, was du verwendest.
Hier ist der Link zur Dokumentation: https://docs.woothemes.com/document/remov-product-content-based-on-category/
quelle
Ich würde die
get_categories()
Funktion der Klasse WC_Product verwenden.Den Link zur Dokumentation finden Sie hier .
Grundsätzlich rufen Sie innerhalb der Schleife der Seite die Funktion auf, um die mit dem Produkt verknüpften Kategorien zurückzugeben.
quelle