Consulta wp_query para varias categorías de post WordPress

¿Quieres valorar este artículo? Gracias

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 4,00 de 5)
Cargando…

Última modificación: 22 octubre 2019

Código wp_query para mostrar post de varias categorías

Vamos a explicar como crear una consulta personalizada wp_query para varias categorías aunque es sencillo solemos cometer un par de errores en el array de category_name.

Primero nombraremos los errores habituales y luego mostraré un pequeño código para copiar y pegar en tus archivos, un código de base que tendrás que modificar con el slug de tus categorías.

Error número 1; no incluir el array para varias categorías

si hacemos lo siguiente:

nuestra consulta no funcionará, aunque estamos pidiendo que nos muestre sólo los post de las categorías wordpress, diseno-web, html5 y moodle, la sintaxis no es correcta.

La sintaxis correcta de la consulta wp_query para varias categorías debe incluir el array. Dos ejemplos de código válido:

Si tienes problemas para entender las diferencias entre los códigos anteriores, revisa la siguiente documentación:

Consultas personalizadas en WP

Consultas personalizadas con wp_query

Error número 2; diferencia entre nombre y slug de una categoría

“WordPress, diseno-web, html5 y moodle” son los slug de las categorías no los nombres, recuerda que en el array tienes que escribir los slug y NO LOS NOMBRES.

wp_query para varias categorías

Si prefieres trabajar con otros parámetros de las categorías de WordPress, por ejemplo con el ID de la categoría, puedes utilizar cat (int) , donde int representa al ID de la categoría. En el siguiente ejemplo, mostramos todos las publicaciones que pertenecen a la categoría con ID=4, ID=6… Si la categoría con ID=4, ID=6… tiene subcategorías, también se muestran.

Hasta ahora estoy mostrando ejemplos muy sencillos que muestran todas las publicaciones que pertenecen a una de las categorías que se incluyen en el array, da lo mismo si empleamos el ID de categoría o el slug. Como las necesidades de cada uno pueden ser diferentes, os mostraré otras funciones y sus parámetros para alterar las consultas wp_query a categorías y obtener distintos resultados.

Otras funciones para mostrar varias categorías en WordPress

Mostrar todas las publicaciones que pertenezcan a varias categorías

No es una buena práctica que un post pertenezca a varias categorías. Aún así, si es tu caso, y necesitas mostrar las publicaciones que cumplen que pertenecen a dos categorías diferentes, puedes emplear el signo suma + . El siguiente ejemplo, muestra todos los post que pertenecen a la categoría francia y europa.

Si prefieres hacer la consulta con IDs de la categoría:

El resultado de la consulta anterior son todas las publicaciones que pertenecen a la categoría cuyo ID es el 4 y además pertenecen a la categoría cuyo ID es el 6.

Mostrar todas las publicaciones excepto la de algunas categorías

Cuando queremos mostrar todos los post de nuestro blog, excepto aquellas publicaciones que pertenezcan algunas categorías concretas, puede ser más interesante crear un array inverso. Es útil cuando manejamos muchas categorías y queremos mostrar la mayoría de ellas. Para lograr este objetivo podemos hacer uso del símbolo resta – delante del ID de categoría.

La consulta anterior muestra todas las publicaciones excepto las de la categoría con ID 4 o las de la categoría con ID 17.

No mostrar hijos de ninguna categoría

Las funciones cat y category_name, muestran los post de la categoría y también todos los post que pertenecen a categorías hijas de la misma. Por ejemplo, tenemos la categoría con slug=Francia y ID=4, y de esta categoría cuelgan subcategorías, por ejemplo; París, Lyon… Si hacemos uso de category_name = Francia o cat=4, mostrará todos los post de Francia, París, Lyon… Si no quieres mostrar los hijos, debes emplear las siguientes funciones:

Mostrará todas las categorías con ID=4 (francia) y con ID=17 (alemania) pero no sus hijos o subcategorías.

Si necesitas más información, puedes consultar: https://developer.wordpress.org/reference/classes/wp_query/

Código para copiar y pegar en tus archivos

El siguiente script, es el código completo para mostrar todas las publicaciones de WordPress que pertenecen a varias categorías. La función empleada está basada en el slug de categoría.

Nerea Liebana

Lph by Nerea Liébana

¿Quieres suscribirte al Newsletter?