Realizar consultas en WordPress con WP_Query

Publicado en WordPress por Samantha Rodriguez

Última actualización el 24 de febrero, 2020

La base de datos que alimenta su sitio web de WordPress está llena de información valiosa. Esto es lo que hace posible filtrar tus publicaciones y páginas por muchas variables diferentes. Sin embargo, si lo que desea mostrar no es parte de su tema, hay otras formas de usar esos datos.

Aquí es donde entra en juego WP_Query. Esta es una clase PHP que hace uso de una amplia variedad de parámetros. En consecuencia, le permite extraer datos de la base de datos de WordPress para usarlos o mostrarlos en su sitio web.

En este artículo, proporcionaremos una comprensión más profunda de la clase WP_Query y cómo se puede usar. También le guiaremos a través de algunos pasos importantes a seguir cuando lo use. Si estás listo, ¡vamos a sumergirnos!

¿Qué es WP_Query?

Como mencionamos, WP_Query es una clase PHP utilizada por la base de datos de WordPress. Esta clase en particular puede hacer varias cosas, pero principalmente se usa para extraer publicaciones de la base de datos.

Como su nombre indica, realiza una consulta en función de los criterios que haya establecido para ella. Dado que hay muchos parámetros que puede usar con WP_Query en WordPress, puede extraer y mostrar publicaciones de varias maneras únicas. Exploraremos esas opciones con mayor detalle más adelante en esta publicación.

Cómo usar WP_Query

Incluso si solo está aprendiendo los diversos aspectos de la base de código de WordPress, WP_Query es una buena clase para comenzar. Ahora, vamos a desglosar cuatro formas diferentes de usarlo en su sitio web.

Comience con un Bucle personalizado

Una de las mejores formas de conocer la llamada WP_Query es a través del Bucle de WordPress. Si no está familiarizado con lo que es el Bucle, es un concepto importante para leer.

El Bucle es lo que llama a la base de datos pidiendo contenido de publicación y muestra los datos que se devuelven. También funciona en función de parámetros establecidos, como la cantidad de publicaciones que desea que su sitio se muestre en una sola página (algo que puede configurar en el menú de lectura Configuración >).

Los conceptos básicos del Bucle se ven así:

<?php
if ( have_posts() ) :
while ( have_posts() ) : the_post();
// Display post content
endwhile;
endif;
?>

Esta simple declaración está diciendo esencialmente que si hay publicaciones, deben mostrarse. Por supuesto, puede agregar una amplia variedad de etiquetas de plantilla a esta base, para crear la pantalla que desee.

también puede insertar WP_Query en el Bucle. Esto le permite colocar parámetros en los mensajes que se devolverán. Analicemos cómo se vería eso:

<?php
// The Query
$the_query = new WP_Query( $args );
// The Loop
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
} else {
// no posts found
}
/* Restore original Post Data */
wp_reset_postdata();

Verá las mismas instrucciones if / while del bucle básico, pero hay una cadena WP_Query adicional. Cualquier parámetro que se establezca aquí determinará qué publicaciones se mostrarán.

Por ejemplo, si desea excluir a un determinado autor de una lista de publicaciones, puede hacerlo en bucle con WP_Query:

$query = new WP_Query( array( 'author' => -12 ) );

Al colocar esto en el Bucle, sus publicaciones mostradas ya no incluirían al usuario con el número de autor de «12».

El número de parámetros que puede usar con este método es casi infinito. Puede incluir información de categorías, así como taxonomías avanzadas, solo para dar dos ejemplos.

Argumentos: La columna Vertebral de las Consultas personalizadas en WordPress

En el ejemplo anterior, es posible que haya notado «(arg args) » como parte de la cadena. Esta es una parte vital de la consulta que se refiere a la inclusión del ‘argumentos’. Le dice a la base de datos exactamente qué incluir en los datos devueltos.

Esencialmente, estos argumentos se pueden configurar para determinar los resultados exactos que desea mostrar. Los argumentos también se pueden usar para cambiar el valor de las variables. Por ejemplo, si desea cambiar la forma en que aparece la lista de categorías en la página, puede usar un argumento.

Su argumento definirá una matriz de variables y valores. Así que si lo desea, puede usar un argumento para definir una matriz y decirle a su base de datos que presente las categorías en orden descendente. Además, puedes usar el mismo método para excluir cualquier categoría que no contenga publicaciones.

Parámetros en WP_Query: Categoría, Etiqueta y más

Hasta este punto, solo hemos mencionado parámetros de pasada. En este punto, miremos más de cerca lo que realmente pueden hacer. Su función principal es permitirle extraer colecciones de publicaciones diseñadas a medida.

Un ejemplo de parámetro que se puede usar en el encabezado de su sitio es el parámetro Category. Puede usar esto para especificar categorías específicas para la visualización. Esto se hace proporcionando el número de categoría o babosa correspondiente.

Además, puede hacer lo mismo con el parámetro Tag. Por supuesto, los parámetros de Categoría y etiqueta son solo la punta del iceberg cuando se trata de usar WP_Query.

Modificar objetos con Métodos y propiedades

Aunque no se recomienda alterar directamente las propiedades de una clase como WP_Query, puede interactuar con ellos mediante métodos. Esencialmente, los métodos son como funciones, mientras que las propiedades son el equivalente de las variables.

WP_Query tiene muchas propiedades. Estos van desde propiedades simples «posts posts» hasta propiedades más complicadas. Sea cual sea el método utilizado para interactuar con ellos, los datos se devolverán en función de los parámetros que elija implementar.

WP_Query vs query_posts() en WordPress

Vale la pena señalar que hay otra forma de modificar la consulta principal en tu página. Esta es la función query_posts (). Si bien esto puede funcionar de manera similar a WP_Query, también puede ser muy problemático.

La Referencia de código de WordPress incluso recomienda encarecidamente que no use esta función dentro del bucle principal de su sitio web. También es mejor evitarlo en complementos y temas. Esto se debe a que anulará completamente su consulta principal.

Se prefiere la clase WP_Query, porque también puede «restablecer» el bucle principal después de ejecutar una consulta. Dado que WP_Query le permite ejecutar múltiples consultas en un bucle, también querrá comprender cómo implementar la función wp_reset_postdata.

Si ha incrustado un bucle secundario dentro del bucle principal de WordPress, la función de reinicio se colocará al final y se verá así:

<?php wp_reset_postdata(); ?>

Esto restaurará las etiquetas de plantilla predeterminadas y volverá a la forma en que estaban las cosas antes de que se iniciara el bucle secundario.

Personaliza tu sitio de WordPress con WP Engine

Poder hacer ajustes en la forma en que se muestran los elementos en tu sitio web es solo uno de los beneficios de usar WordPress. Comprender WP_Query y aprovechar las herramientas proporcionadas en la página de recursos para desarrolladores puede ayudarlo a crear sitios web verdaderamente personalizados.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.