Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Dominar WP_Query: 10 Ejemplos Útiles

by
Read Time:10 minsLanguages:
This post is part of a series called Mastering WP_Query.
WP_Query Arguments: Author, Search, Password & Permissions
Combining WP_Query With the Main Query

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Ahora que hemos aprendido casi todo sobre la clase WP_Query, es el momento de probar con algunos ejemplos. En esta parte, vamos a trabajar con 10 escenarios diferentes en los que hacer uso de WP_Query y de funciones relacionadas.

Será un ejercicio divertido y espero que sea al mismo tiempo didáctico. ¡Vamos!

Rápido Repaso sobre la Creación de un Loop Con WP_Query 

Con el objetivo de hacer el artículo comprensible por separado de la serie completa "Dominar WP_Query", debería realizar un breve nano-tutorial sobre la creación de loops en WordPress mediante la clase WP_Query.

En el fondo, no se diferencia mucho de la creación de un loop común. Un típico loop de WordPress sería así:

Y la creación de un loop con la clase WP_Query solo contiene algunas diferencias: 

Veamos cuáles son estas entre ambos:

  • Establecemos algunos argumentos para nuestra instancia WP_Query,
  • Iniciamos la clase WP_Query,
  • Hemos añadido $my_query-> al principio de las funciones have_posts()the_post() ( de forma que ahora constituyen métodos de la clase WP_Query),
  • Y hemos reajustado los datos de $post de forma que pueda responder a la query principal.

Ahora sabemos como crear un loop con WP_Query y la diferencia entre un loop normal y otro creado con WP_Query. No vamos a crear loops en cada ejemplo (con el fin de mantener el tutorial breve y centrado en el tópico), así que si necesitas crear un loop con los ejemplos de abajo puedes consultar esta sección.

Ejemplo #1: Los Artículos de Un Autor Durante Este Año

Imagina que quieres enumerar los artículos que un autor en particular ha escrito en el transcurso de este año reunidos en una sección especial, "Los Artículos del Autor en Este Año". Una sencilla combinación de dos parámetros WP_Query será suficiente:

Procesa esta cadena en un loop y, ¡ya lo tienes!

Ejemplo #2: "Los Últimos Artículos De Esta Categoría" (Exceptuando el Actual)

Digamos que quieres crear un loop bajo cada artículo en las páginas individuales de cada post o entrada, y listar las últimas entradas de su misma categoría. Por supuesto, en este caso debes excluir la entrada actual si es la más reciente en la categoría.  Aquí tienes cómo crear la query con los parámetros 'cat''post__not_in':

Para el loop, te sugiero que construyas tres o cuatro columnas con miniaturas sobre los títulos de las entradas. Quedará perfecto justo bajo el artículo y antes de la sección de comentarios.

Ejemplo #3: "Los Artículos Más Populares" Ordenados según la Cantidad de Comentarios 

WordPress no dispone de un sistema interno que haga la función de "contador de visitas a entradas", y los plugins que sí la ofrecen tienen fama de ralentizar las páginas (ya que con cada visita a la entrada, estos plugins escriben en la base de datos repetidamente para grabarlas todas). De todas formas, existe otros medios para medir la "popularidad" de un artículo: el conteo de los comentarios. Y a diferencia del número de visitas, los comentarios ya existen en la base de datos —la clase WP_Query hace que resulte verdaderamente fácil ordenar las entradas bajo el criterio del número de comentarios.

¿Vemos lo fácil que es? Imagínate creando una plantilla de página personalizada con un loop procesando esta cadena —una página con "Los Artículos Más Comentados".

Ejemplo #4: Ajustar Un Sencillo Slider o Visor de Diapositivas

Cuando usamos WordPress para crear páginas web corporativas, portafolios o revistas digitales, los sliders pasan a ser casi un estándar obligatorio. Yo no soy un gran admirador de los sliders (creo que son nefastos para UX - la experiencia del usuario) pero a la web parecen gustarle, así que no puedo decir que no a mis clientes si realizo webs para ellos. Si quieren sliders, uso una cadena simple mediante la clase WP_Query:

El argumento 'cat' se puede usar para obtener las diapositivas del slider que ilustrarán las diferentes categorías, y así puedes separar conjuntos de diapositivas y usar multiples sliders en multiples páginas. Si vas a usar solo un slider en tu web, puedes eliminar esa línea seguir sin problemas.

Ejemplo #5: Una Cita Aleatoria para la Barra Lateral

Si te chiflasen la literatura o los temas religiosos, podrías querer ubicar algunas de tus citas favoritas en la barra lateral —no es un desperdicio del espacio si empleas esa área con un propósito. Así que, si vas a incluir un número de citas aleatorias a tu barra lateral para cada visita a la página, puedes usar el siguiente fragmento de código para crear un tipo de entrada y usar la siguiente cadena para el loop en la barra lateral.

Una solución fácil y elegante.

Ejemplo #6: Enumerar Productos Dentro de un Rango de Precio

Encontré este ejemplo en Scribu.net y debo decir, que es el mejor truco con WP_Query de este tutorial. Es un poco más técnico que los otros ya que, además, puede ser aplicado a un sitio web de e-commerce construido con WordPress.

Aquí tienes el fragmento de código que usarías si quisieses enumerar los artículos de una entrada personalizada de "producto" y filtrar los resultados con los campos personalizados para el "precio".

¡Gran ovación para Silviu-Cristian Burca!

Ejemplo #7: Un Atajo para Incrustar Entradas Dentro de Entradas

Aquí tenemos un ejercicio simpático—¡y nos habituaremos a usar la API del código corto! En este ejemplo, vamos a crear un código corto que sea capaz de incrustar una entrada en otra. (casi tengo que contenerme al dar nombre al código corto [postception].) En el siguiente fragmento de código, hemos creado una función de código corto que nos permitirá incrustar entradas (o cualquier post type) y también elegir si mostramos la entrada completa o un resumen.

Ejemplo #8: Listado de Las Entradas Actualmente Programadas (Con Resúmenes Opcionales)

Te propongo una idea: ¿Por qué no desvelas algunas "pequeñas pistas" sobre próximos artículos a tus visitantes? Puedes usar la siguiente función para enumerar tus artículos programados con o sin extracto tras el título:

Ejemplo #9: "Artículo De Hace Un Año"

Si tu blog tiene más de un año de antigüedad, y tu contenido no es caduco (es decir, una persona encontrará el contenido relevante tanto en 2015 como en 2015), añadir una sección llamada "Artículo De Hace Un Año" podría impulsar el índice de páginas vistas. Cómo conseguirlo:

Usa esta cadena para construir un loop que muestre una única entrada del año anterior.

Ejemplo #10: Mostrar Una Página Descendiente de la Actual

¿No tienes más que los títulos de  las sub-páginas para ubicar en las páginas "Servicios", "Nuestros Trabajos", o "Mi Portafolio"? Quizá un párrafo introductorio, está bién, esas páginas suelen estar destinadas a convertirse en "contenedores vacíos". En cualquier caso, es buena idea tener sub-páginas de este tipo—quizá una retícula con miniaturas rectangulares y títulos superpuestos. Veamos que cadena deberíamos usar para crear este tipo de plantilla de página que acabo de sugerirte:

Resumiendo

Espero que hayas disfrutado con estos ejemplos tanto como yo mientras los preparaba. Presté especial atención en ofrecer variedad tanto para que fuesen amenos como para ampliar tu creatividad.

Si se te ocurren mejores ejemplos mientras lees estos, o tienes preguntas, no seas tímido y coméntalo más abajo. Y si te ha gustado el artículo, ¡no olvides compartirlo con tus amigos!

En la proxima parte, hablaremos sobre WP_User_Query, una de las clases hermanas de WP_Query. ¡Hasta entonces!

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.