Por defecto WordPress ejecutará una consulta en cada página de tu sitio, la naturaleza de lo que se muestre será determinado por el tipo de página que se está viendo. Si una página estática está siendo visitada, WordPress ejecuta una consulta para obtener la la página que tenga el ID respectivo, mientras que si una página con varias entradas es visitada entonces todas las entradas en dicha página serán obtenidas.
A veces, es posible querer obtener dichas páginas de manera distinta. Bien en el contenido central de la página o en algún otro lugar (como en la barra lateral o en el pie de página), es probable que desees mostrar algún contenido específico que no se puede obtener por una consulta estándar.
Las buenas noticias es que WordPress lo hace posible a través de la clase WP_Query. Esta clase te provee de una gran cantidad de parámetros que puedes usar para definir que contenido deseas obtener (el cual no necesita estar limitado solo a entradas) y luego escribir un bucle que mostrará la información exactamente como buscas.

¿Qué es WP_Query?

WP_Query es una clase propia de WordPress. La realidad es que usando un clase de WordPress puedes acceder rápidamente a variables y funciones que han sido creadas dentro del núcleo de WordPress, sin necesidad de preocuparte de escribir todo el código por ti mismo. Esto hace tu código más eficiente y seguro.
Si buscas entender exactamente cómo WP_Query trabaja puedes ver su código en el archivo wp-includes/query.php
WP_Query está formado por cuatro elementos principales:
  • El argumento de la consulta, usando parámetros
  • La consulta
  • El bucle, que mostrará el contenido de la entrada, títulos o lo que desees mostrar.
  • Etiquetas if y while de cierre y reseteo de datos de entrada.
En la práctica esto se verá así:

Puedes definir tus argumentos cuando escribes la consulta misma, pero yo prefiero definirla previamente para mantener el código ordenado.

Restaurando Datos de Entrada

En el ejemplo anterior he incluido la llamada a la función wp_reset_postdata() después de la consulta. Esto es importante porque restaura la consulta para no tener problemas con la consulta principal que se está ejecutando en la página.
Por ejemplo, si estas usando WP_Query para ejecutar una consulta en la barra lateral, usar wp_reset_postdata() le comunica a WordPress que aún nos encontramos en la página que estamos viendo en dicha página y que debe continuar funcionando con la consulta por defecto de dicha página.
Si no haces eso, cualquier otra consulta que se ejecute en la página(incluyendo la consulta por defecto) puede funcionar incorrectamente, y toda etiqueta condicional que depende del tipo de página que se esté visitando no funcionará.