Comment puis-je vérifier si un produit se trouve dans une certaine catégorie de produits sur le single-product.php ?
<?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') n'a pas d'effet sur le single-product.php . Je veux avoir les conditions supérieures. Une solution pour cela sur une page mono-produit?
)
? Il devrait êtreif (is_product_category('audio'))
Réponses:
Je ne pense pas que ce
get_categories()
soit la meilleure option pour vous dans ce cas, car il renvoie une chaîne avec toutes les catégories répertoriées comme balises d'ancrage, très bien pour l'affichage, mais pas idéal pour déterminer dans le code quelles sont les catégories. Ok, donc la première chose que vous devez faire est de récupérer l'objet produit / publication pour la page actuelle si vous ne l'avez pas déjà:Ensuite, vous pouvez obtenir les objets de terme de catégorie de produit (les catégories) pour le produit. Ici, je transforme les objets de termes de catégorie en un tableau simple nommé
$categories
afin qu'il soit plus facile de voir quels slugs sont attribués. Notez que cela retournera toutes les catégories affectées au produit, pas seulement celle de la page actuelle, c'est-à-dire si nous sommes sur/shop/audio/funzo/
:Il suffit ensuite de vérifier si une catégorie est dans la liste:
Mettre tous ensemble:
J'espère que c'est ce que vous cherchiez et répond à votre question.
la source
has_term
devrait fonctionner dans ce cas:la source
if { thing; return;}
Il convient de noter que vous pouvez parcourir une liste d'options en appelant un tableau plutôt que d'avoir à encombrer votre code avec de nombreuses vérifications elseif, en supposant que vous voulez faire la même chose avec chaque catégorie.
la source
C'est vieux mais juste au cas où les gens cherchent toujours WooThemes comme une solution simple:
* Remplacez «votre_catégorie» par ce que vous utilisez.
Voici le lien vers la documentation: https://docs.woothemes.com/document/remov-product-content-based-on-category/
la source
Je regarderais en utilisant la
get_categories()
fonction de la classe WC_Product.Vous pouvez trouver le lien vers la documentation ici .
Fondamentalement, dans la boucle de la page, appelez la fonction pour renvoyer les catégories associées au produit.
la source