Un problema muy común que veo cuando trabajas con taxonomías personalizadas en WordPress es que cuando muestras el conjunto de posts que pertenecen a cierta taxonomía, se batalla para mostrar los datos de la taxonomía como su nombre, descripción, padres (jerarquía), o incluso el ID.
Con esta línea de código vas a poder obtener todos esos valores y usarlos a tu conveniencia.
$term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy'));
Hay que aclarar que esta línea funciona solo cuando estás en una página de archivo (archive.php).
Una vez ejecutada dicha línea obtendremos un objeto con los siguientes atributos:
term_id
name
slug
term_group
term_taxonomy_id
taxonomy
description
parent
count
Veamos un ejemplo. Si tengo una taxonomía para categorizar ciertas entradas. Digamos que mis entradas son de tipo «empresas» y las categorías son de tipo «giros», y quiero modificar la etiqueta <meta description>
para mostrar las descripciones que tengo en mis giros.
Hasta aquí:
Mis entradas pertenecen al post_type empresas
Mis categorías pertenecen al taxonomy giros
Entonces abro una URL de taxonomía:
http://example.com/giros/pizzerias
Y suponiendo que mi descripción del tax pizzerias sea «Las mejores pizzas de la ciudad» y que quiera mostrarlas en la meta descripción de la página.
Por un lado sería en el header.php
<meta name="description" content="<?php echo my_description()?>"/>
Y despúes en functions.php
function my_description(){ $term = get_term_by('slug', get_query_var('term'), get_query_var('taxonomy')); if (is_archive()) { $taxDescription = term_description($term->term_id, 'giros'); return empty($taxDescription)? 'Descripcion por default': strip_tags($taxDescription); } // Aca puedes implementar más opciones, is_home(), is_single(), is_search() etc... }
Si deseas usar esta función, solo tendrías que cambiar giros por tu taxonomía personalizada.