En mi header.php
quiero agregar un título basado en la categoría de la página.
Mi código actual se ve así:
<h1 class="page-title"><?php if (is_category('english') || has_category('english',$post->ID)) { echo "music in the world of noise"; } elseif (is_category('marathi') || has_category('marathi',$post->ID)) { echo "क्षितिज जसे दिसते"; } elseif (is_category('happenings') || has_category('happenings',$post->ID)) { echo "Happenings"; } elseif (is_product() && is_product_category( 'music' ) ) { echo "music"; } elseif (is_product_category( 'album' )) { echo "albums"; } elseif ( is_product() && is_product_category( 'workshop' ) ) { echo "Workshop"; } elseif( is_product() && has_term( 'workshop' ) ) { echo "Workshop"; } else { the_title(); } ?> </h1>
Quiero hacer eco del Workshop
en h1 si la página del producto es una página de un solo producto Y si ese producto está en la categoría del workshop
. Lo mismo para la Music
. is_product_category
funciona solo en la página de categoría, no en la página de un solo producto.
¿Cómo determino la categoría de un solo producto y me hago eco del texto correspondiente? ¿Otras declaraciones if ( is_category('english')
has_category()
) funcionan excepto en las páginas de woocommerce?
Hay algunos errores en su código con respecto a las categorías de WooCommerce:
is_category()
y has_category()
no funcionan con las categorías de productos de WooCommerce (las categorías de productos de WooCommerce son una taxonomía personalizada ' product_cat
') .is_product() && is_product_category()
no funcionará junto con &&
, ya que is_product()
apuntará a páginas de productos individuales e is_product_category()
apuntará a páginas de archivos de categorías de productos. Para segmentar sus categorías de productos en páginas de un solo producto, debe usar la función condicional de Wordpresshas_term()
con la taxonomía ' product_cat
'.
También puede dirigirse a páginas de archivos de categorías de productos al mismo tiempo en su condición, si usan el mismo título...
Entonces, su código (para las categorías de productos de WooCommerce) será algo como:
<h1 class="page-title"><?php // ... / ... if ( is_product() && has_term( 'music', 'product_cat' ) || is_product_category( 'music' ) ) { echo "Music"; } elseif ( is_product() && has_term( 'album', 'product_cat' ) || is_product_category( 'album' ) ) { echo "Albums"; } elseif( is_product() && has_term( 'workshop', 'product_cat' ) || is_product_category( 'workshop' ) ) { echo "Workshop"; } else { the_title(); } ?></h1>
Si no necesita apuntar al mismo tiempo a páginas de archivos de categorías de productos, tendrá que eliminar en cada declaración de condición || is_product_category()
…