Filtrar posts por taxonomías personalizadas

Cuando trabajamos con Custom Post Types a menudo nos encontramos la necesidad de filtrar resultados por taxonomías personalizadas.


por

Si estamos utilizando custom post types con taxonomías (categorías o etiquetas) personalizadas, es posible que en algún momento necesitemos poder filtrarlos por una de ellas.

Cuando trabajamos con las entradas nativas, podemos utilizar como argumentos ‘cat’ y ‘tag’ directamente:

$query = new WP_Query( array( 'tag' => 'cooking' ) );
$query = new WP_Query( array( 'cat' => 4 ) );

Y las diferentes opciones como tag_id, category_name, etc…

En la documentación oficial tienes todas las opciones para los argumentos de WP_Query

Pero cuando se trata de taxonomías personalizadas, la forma de pasar los parámetros para filtrar los resultados es diferente, ya que debemos utilizar tax_query, pasándole el array con los argumentos necesarios:

  • Relation: la relación lógica para cuando hay más de una taxonomia (AND, OR…)
  • Un array con el detalle de la taxonomía: taxonomy, field, terms, include_children y el operador.

En este ejemplo podemos ver cómo utiizarlo:

De entrada puede parecer algo confuso, sobretodo porque los argumentos incluye un array de array, pero una vez conoces la estructura y el funcionamiento te permite mucha flexibilidad a la hora de poder filtrar y mostrar el contenido que necesitas.

¿Eres implementador o desarrollador WordPress?

En la Zona DPW encontrarás más recursos, tutoriales, plantillas, y una biblioteca de snippets para poder utilizar en tu día a día y ganar tiempo en tu trabajo:

ACCEDER AHORA