Wordpress_logo_8Un 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.