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à:
global $post;
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/
:
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
Il suffit ensuite de vérifier si une catégorie est dans la liste:
if ( in_array( 'audio', $categories ) ) { // do something
Mettre tous ensemble:
<?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';
}
J'espère que c'est ce que vous cherchiez et répond à votre question.
)
? Il devrait êtreif (is_product_category('audio'))