Realizar consultas en WordPress con WP_Query

Publicado: 2023-02-12

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 forma parte de su tema, existen otras formas de utilizar 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 usar o mostrar 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 lo guiaremos a través de algunos pasos importantes a seguir cuando lo use. Si estás listo, ¡vamos a sumergirnos!

Tabla de contenido
1. ¿Qué es WP_Query?
2. Cómo usar WP_Query
2.1. 1. Comience con un bucle personalizado
2.2. 2. Argumentos: la columna vertebral de las consultas personalizadas en WordPress
2.3. 3. Parámetros en WP_Query: Categoría, Etiqueta y Más
2.4. 4. Modificar Objetos con Métodos y Propiedades
3. WP_Query frente a query_posts() en WordPress
4. Personaliza tu sitio de WordPress con WP Engine

¿Qué es WP_Query?

Como mencionamos, WP_Query es una clase de 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 lo indica, realiza una consulta en base a los criterios que le establezcas. 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 del código base de WordPress, WP_Query es una buena clase para comenzar. Ahora, analicemos cuatro formas diferentes en que puede usarlo en su sitio web.

1. Comience con un bucle personalizado

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

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

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 esencialmente dice 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 desea.

También puede insertar WP_Query en el bucle. Esto le permite colocar parámetros en qué publicaciones se devolverán. Analicemos cómo se vería:

<?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 declaraciones if/while del bucle básico, pero hay una cadena WP_Query adicional. Los parámetros que se establezcan aquí determinarán qué publicaciones se mostrarán.

Por ejemplo, si desea excluir a un determinado autor de una lista de publicaciones, puede hacerlo en el 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".

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

2. Argumentos: la columna vertebral de las consultas personalizadas en WordPress

En el ejemplo anterior, es posible que haya notado "($args)" como parte de la cadena. Esta es una parte vital de la consulta que se refiere a los 'argumentos' incluidos. 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 su lista de categorías en la página, puede usar un argumento.

Su argumento definirá una matriz de variables y valores. Entonces, 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, puede usar el mismo método para excluir cualquier categoría que no contenga publicaciones.

3. Parámetros en WP_Query: Categoría, Etiqueta y Más

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

Un ejemplo de un parámetro que se puede usar en el encabezado de su sitio es el parámetro Categoría. Puede usar esto para especificar categorías específicas para mostrar. Esto se hace proporcionando el número de categoría o slug correspondiente.

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

4. Modificar Objetos con Métodos y Propiedades

Si bien no se recomienda alterar directamente las propiedades de una clase como WP_Query, puede interactuar con ellas mediante el uso de 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 simples propiedades "$posts" hasta otras más complicadas. Independientemente del método que se utilice para interactuar con ellos, los datos se devolverán en función de los parámetros que elija establecer.

WP_Query frente a query_posts() en WordPress

Vale la pena señalar que hay otra forma de modificar la consulta principal en su 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 del código de WordPress incluso recomienda encarecidamente que no utilice 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á por completo 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 varias consultas en un bucle, también querrá comprender cómo implementar la función wp_reset_postdata.

Si incrustó 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 ser como eran las cosas antes de que se iniciara el ciclo secundario.

Personaliza tu sitio de WordPress con WP Engine

Poder hacer ajustes en la forma en que se muestran los elementos en su 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.

Aquí en WP Engine, nos apasiona asegurarnos de que tenga los recursos que necesita para crear sitios web atractivos. ¡Vea nuestras soluciones de WordPress y planes de alojamiento hoy!