No creo que get_categories()
sea la mejor opción para usted en este caso porque devuelve una cadena con todas las categorías enumeradas como etiquetas de anclaje, bien para mostrar, pero no es excelente para descubrir en el código cuáles son las categorías. Ok, lo primero que debes hacer es tomar el producto / objeto de publicación para la página actual si aún no lo tienes:
global $post;
Luego puede obtener los objetos de término de categoría de producto (las categorías) para el producto. Aquí estoy convirtiendo los objetos de término de categoría en una matriz simple llamada $categories
para que sea más fácil ver qué babosas se asignan. Tenga en cuenta que esto devolverá todas las categorías asignadas al producto, no solo la de la página actual, es decir, si estamos en /shop/audio/funzo/
:
$terms = wp_get_post_terms( $post->ID, 'product_cat' );
foreach ( $terms as $term ) $categories[] = $term->slug;
Luego solo tenemos que verificar si una categoría está en la lista:
if ( in_array( 'audio', $categories ) ) { // do something
Poniendolo todo junto:
<?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';
}
Esperemos que esto sea lo que estaba buscando y responda su pregunta.
)
? Debería serif (is_product_category('audio'))