Websites & Apps

Explicación de la Clase WP_Query en WordPress

DROPIDEA Por Admin
June 1, 2025 331 vistas
DROPIDEA | دروب ايديا - Explicación de la Clase WP_Query en WordPress

La capacidad de escribir consultas de WordPress para obtener datos personalizados de la base de datos es una habilidad muy necesaria para cualquiera que desee ser un desarrollador de WordPress profesional. Poseer estos conocimientos le permitirá mostrar contenido personalizado diferente al que muestra un sitio de WordPress predeterminado en las diferentes páginas. Hay varios métodos disponibles en WordPress para consultar la base de datos, y quizás el más fácil de estos métodos es el que explicaremos en el artículo de hoy, que es crear consultas de WordPress personalizadas utilizando

la clase WP_Query, que le evita usar complementos personalizados. En este artículo le proporcionaremos una comprensión más profunda de esta importante clase de programación en WordPress, le explicaremos su importancia y casos de uso, y le mostraremos cómo usarla de la mejor manera en su sitio a través de ejemplos prácticos y pasos detallados.

¿Qué es WP_Query en WordPress? WP_Query es una clase de programación que es muy útil para los desarrolladores de WordPress al consultar la base de datos del sitio. Se encuentra como un archivo llamado class-query-wp con la extensión php.

dentro de la carpeta wp-includes dentro de la carpeta raíz de cualquier sitio de WordPress. Esta clase permite a los desarrolladores escribir consultas personalizadas para obtener información específica de la base de datos de WordPress. Puede acceder a este archivo en su sitio, abrirlo con cualquier editor de código e identificar las propiedades y métodos más importantes que contiene.

Esta clase se utiliza normalmente para obtener cualquier tipo de contenido que cumpla con condiciones específicas de la base de datos, pero es considerada uno de los métodos preferidos por los desarrolladores para consultar principalmente artículos de la base de datos de WordPress.

¿Qué significa la palabra consulta?

Una consulta (Query) es un término que significa comunicarse con la base de datos para solicitar datos de acuerdo con condiciones específicas de una tabla o un conjunto de tablas dentro de ella. Esta solicitud devuelve los resultados de la consulta, que son todos los registros de datos que cumplen con estas condiciones. Hay varios lenguajes para realizar consultas, pero el lenguaje más utilizado y popular es el lenguaje de consulta estructurado (SQL). En un sitio de WordPress, cada página tiene su propia consulta llamada consulta principal (Main query) que se usa para determinar el contenido que se muestra en esa página.

Si desea modificar esta consulta de acuerdo con sus necesidades específicas para mostrar contenido diferente (como excluir publicaciones que tengan una categoría específica de la visualización en la página principal, o ordenar la visualización de artículos según el número de comentarios para cada artículo en lugar de la fecha de publicación, u obtener cualquier otra información que desee mostrar), entonces necesitará escribir una consulta personalizada para hacerlo. Donde puede personalizar y modificar la información de cualquier página en su sitio modificando la consulta principal en ella y ejecutando otra consulta adicional para cargar información adicional diferente en ella, manteniendo la consulta principal como está, o reemplazando la consulta principal en sí con una nueva de acuerdo con sus requisitos.

Lea también: Conozca el bucle de WordPress WordPress Loop y cómo funciona en una plantilla de WordPress. Por ejemplo, si usted tiene

una página en su sitio que habla sobre comercio electrónico en el Reino de Arabia Saudita en su sitio y quería mostrar los últimos 3 artículos que hablan sobre el Reino debajo de esta página, entonces puede escribir una consulta personalizada en esta página para traer los artículos y mostrarlos además de los datos que trae la consulta principal para esta página.

Por supuesto, hay varios métodos disponibles en WordPress que le permiten hacer esto, ya sea a través de código de programación, a través de código abreviado, o incluso a través de algunos complementos listos para usar. Pero en el artículo de hoy nos concentraremos en el proceso de anular y personalizar la consulta principal de la página a través de la clase WP_Query. La clase WP_Query se destaca por permitir al desarrollador crear consultas personalizadas fácilmente y modificar la consulta principal de la página

o escribir una nueva consulta para recuperar información de la base de datos de acuerdo con criterios y condiciones específicas. Los criterios o condiciones que desea se definen a través de los parámetros que se pasan al crear una instancia u objeto de esta clase de programación. Lo que distingue la clase de programación WP_Query de otros métodos de programación

es que el desarrollador no tendrá que escribir largas sentencias SQL y no necesitará hacer conexiones complejas con la base de datos para obtener los datos que desea. Todos estos detalles se pueden omitir si la consulta se realiza usando esta clase. Por ejemplo, si un desarrollador de WordPress desea obtener todos los artículos que tienen una categoría específica, o aquellos que fueron escritos por un autor específico en el sitio, todo lo que necesita es pasar el nombre de la categoría o el nombre del autor como parámetro a la clase de forma muy fácil como sigue. new WP_Query('category_name=comida'); new WP_Query('author_name=olasaleh'); La clase WP_Query tiene muchos parámetros que se pueden pasar al crearla, que le permiten personalizar la consulta de la manera que desea. Estos parámetros actúan como propiedades o filtros para los datos que deseamos consultar, como el tipo de publicación post_type

o el nombre del autor de la publicación post_author

o la categoría de la publicación category_name

o la fecha de publicación post_date

o el contenido de la publicación the_content u otras propiedades simples que se almacenan en la variable global $post en WordPress.

También puede pasar otros parámetros para configurar esta clase según lo desee, como ordenar los resultados de la consulta orderby u otras propiedades. En los párrafos siguientes, le proporcionaremos algunos ejemplos y aplicaciones prácticas para que entienda cómo funcionan las consultas de WordPress personalizadas usando la clase WP_Query y mostrar cualquier contenido personalizado en su sitio.

¿Cuáles son los pasos para usar WP_Query en WordPress? Para poder usar esta clase de forma práctica en su sitio, debe poseer algunos conocimientos básicos en programación orientada a objetos (OOP) y la capacidad de editar los archivos de programación de su sitio. No olvide hacer una copia de seguridad de cualquier archivo antes de editarlo para recuperarlo en caso de que ocurra algún error inesperado.

Después de eso, debe seguir los siguientes pasos generales:

1- Debe crear una instancia de la clase WP_Query y pasar el parámetro o conjunto de parámetros que desea que consulte. 2- Debe almacenar los resultados de la consulta en una variable que puede llamar de cualquier manera que elija, y se prefiere que use un nombre significativo.

3- Después de eso, debe iterar a través de los elementos de esta variable (a través de un bucle) para pasar por todos los resultados que devolvió, imprimiéndolos o mostrándolos en el sitio uno por uno. 4- Puede escribir los pasos de programación anteriores en cualquier archivo de su sitio donde desee que muestre estos datos (generalmente se escribe en

uno de los archivos de plantilla del tema o el archivo del complemento) según lo que el desarrollador necesite. Lea también: Conozca la estructura básica de las plantillas de WordPress y su jerarquía. A continuación se muestran ejemplos prácticos que ilustran cómo realizar los pasos anteriores en un sitio de WordPress.

Ejemplo 1: consulta wp_query para obtener todas las publicaciones que tienen una categoría específica. Como se mencionó en los párrafos anteriores, esta clase puede consultar cualquier información que desee en su sitio, pero se utiliza principalmente para consultar artículos. Por ejemplo, tengo un sitio que habla sobre comida y cocina, y tengo varios artículos en la base de datos de mi sitio como se muestra en la siguiente imagen, pero quiero obtener todos los artículos que tienen la categoría (comida)

solo y mostrarlos en una página específica. 1- Primero iremos a la carpeta del tema instalado en nuestro sitio y crearemos un nuevo archivo de plantilla dentro de ella

que se utiliza en nuestro sitio y que sea llamado

( customfoodtemplate.php ) 2- Abrimos este archivo en cualquier editor de código, y creamos dentro de él una instancia de la clase wp_query

y le pasamos el nombre de la categoría category_name

como parámetro y almacenamos los resultados en una variable, digamos $the_query

como sigue:

Aquí configuramos el parámetro con el valor category_name=comida porque queremos que la clase consulte u obtenga de la base de datos todas las publicaciones en nuestro sitio cuyo nombre de categoría sea comida. 3- Por supuesto, esta consulta por sí sola no es suficiente para lograr lo que queremos,

después de obtener todas las publicaciones requeridas, ahora necesitamos escribir un código de bucle de WordPress que verifique si hay artículos publicados que cumplan con la condición para mostrarlos, y continúa ejecutándose mientras haya publicaciones en el resultado de la consulta.

Dado que almacenamos los artículos en la variable $the_query temporalmente en el código anterior, ahora escribiremos código que muestra una lista de todos estos artículos que se obtuvieron

como sigue:

Tenga en cuenta que el bucle de WordPress aquí utilizó la función de utilidad have_posts() como condición para comenzar la ejecución. Este método verifica si hay datos en la variable

$the_query para ser mostrados. Si hay datos, esto a su vez causará la ejecución del código dentro del bucle.

En cada iteración, se llama al método the_post(), que es una función definida en la clase WP_Query que nos obtiene el índice o identificador del artículo que se devolvió en la consulta (post indexes)

En cada iteración del bucle, nos devuelve el índice o identificador de la siguiente publicación. Después de eso, imprimiremos el título de esta publicación dentro de una lista llamando al método the_title()

Finalmente, si está usando the_post() en su consulta, deberá llamar a la función wp_reset_postdata()

después de terminar de ejecutar cada consulta que realizamos para restablecer la consulta después de ejecutarla a la consulta principal que se ejecutó en la página que se muestra actualmente, ya que esta función tiene la tarea de restablecer la variable global $post al artículo actual en la consulta principal. Sin esta llamada, la consulta principal puede no funcionar y entrar en conflicto con otras consultas en la página.

También, si no lo hace, cualquier otra consulta en la página, incluida la consulta principal, puede no funcionar. 4- Para revisar los resultados de la consulta, iremos al panel

de administración del sitio < seleccionamos páginas < agregamos nueva < y escribiremos un título para la página, digamos (Our Custom Food). 5- Desde la sección de propiedades de la página, seleccionamos en la lista desplegable la plantilla de página que sea Custom Food Template

para anular la consulta principal de la página como se muestra en la siguiente imagen. Lea más: Conozca las plantillas de página Page Templates en WordPress y las formas de personalizarlas. 6- Ahora, si va al enlace de esta página para revisarla, obtendré

el siguiente resultado en mi sitio: 7- Necesitamos editar el código del archivo Customfoodtemplate.php y mostrar el encabezado y pie de página de la página llamando a los métodos

get_header() al inicio y get_footer() al final para que agregue a la página anterior el encabezado y pie de página de la plantilla principal del sitio de la siguiente manera: La página de resultados después de esta edición tendrá el siguiente aspecto: Este fue un ejemplo simple del uso de la clase WP_Query

con un solo parámetro, y hay muchas otras opciones que se pueden usar para expandir las características de esta clase como se mencionó. Donde puede escribir consultas más avanzadas usando parámetros adicionales o condiciones adicionales dentro del bucle o usando bucles anidados (un bucle dentro de un bucle).

Los desarrolladores de WordPress también pueden usarlo al desarrollar sus propios complementos y temas para mostrar y personalizar las publicaciones de la forma que deseen. Ejemplo 2: consulta wp_query para mostrar las publicaciones más recientes en WordPress. Con frecuencia, los desarrolladores de temas necesitan mostrar los artículos más recientes publicados en sus temas, lo que permite a los visitantes del sitio encontrar fácilmente el contenido nuevo publicado en el sitio e interactuar más con él.

Las publicaciones más recientes en el sitio generalmente se muestran en la barra lateral del sitio o al final de una publicación específica. Esto se puede hacer en WordPress de varias formas, pero actualmente nos enfocamos en usar una instancia u objeto de la clase WP_Query para hacerlo. Escribiremos el siguiente código para mostrar los títulos de solo los últimos 3 artículos sobre comida en nuestro sitio, no todos los artículos, por lo que pasaremos más de un parámetro a la clase definiendo una variable de tipo matriz para almacenar los parámetros que deseamos pasar a la clase de la siguiente manera.

El código anterior consulta los últimos tres artículos en el sitio que tienen la categoría comida, y luego muestra (el título y resumen de cada artículo de estos artículos y un enlace para leer más para leer el artículo completo) y el resultado de la ejecución es como sigue: El código comienza definiendo los parámetros de la consulta y los almacena en una matriz de parámetros llamada $query_options

que contiene dentro de ella dos parámetros: (el nombre de la categoría category_name y el número de artículos requeridos posts_per_page). Luego pasa esta matriz como argumento al objeto de la clase WP_Query, y después almacena el resultado de la consulta en la variable $the_query

y lo muestra a través de un bucle como en el ejemplo anterior. ¿Por qué WP_Query es mejor que otros métodos para consultas personalizadas?

WP_Query no es la única técnica para crear una consulta personalizada. Hay varios otros métodos que le permiten consultar la base de datos de WordPress, incluyendo: Código abreviado: puede escribir un código abreviado para obtener datos personalizados de la base de datos y mostrarlos en su sitio sin tener que escribir ningún código de programación o editar los archivos de plantilla de su sitio. query_posts(): es un método o función de programación capaz de cambiar y modificar la consulta principal de la página. Este método no es preferido por las referencias oficiales de WordPress porque reemplaza la consulta principal de la página con una completamente nueva, por lo que no debe usarse en el desarrollo de complementos o temas.

pre_get_posts: es un gancho (hook) utilizado para modificar la consulta principal de la página. Aunque se considera uno de los métodos preferidos para modificar consultas principales en el sitio, no puede usarlo para crear una consulta independiente sin invocar la consulta principal. Por lo tanto, si su objetivo es modificar completamente la consulta principal de la página, entonces

solo puede usar este gancho como una alternativa a la clase WP_Query. get_posts() y get_pages(): estas dos funciones o métodos son seguros de usar

en cualquier lugar del sitio y usan implícitamente la clase WP_Query para realizar la consulta. Estos dos métodos funcionan de manera similar y se diferencian únicamente en el tipo de contenido que consultan.

El primero devuelve el contenido de las publicaciones posts y el segundo devuelve el contenido de las páginas pages, como es obvio en sus nombres. Por esta razón, podemos considerar que WP_Query en WordPress es la opción más completa y personalizable entre las opciones anteriores, y es por esto que la prefieren la mayoría de los desarrolladores porque puede consultar cualquier cosa

que deseen de la base de datos del sitio. Algunas preguntas frecuentes sobre WP_Query en WordPress. A continuación, respondemos a las preguntas más importantes que un desarrollador pueda tener sobre esta clase de programación: P1: ¿Cuándo anulo la consulta principal de una página con una consulta secundaria, y cuándo escribo una consulta principal completamente nueva?

La respuesta aquí depende de la forma en que desee mostrar sus datos. Por ejemplo, si desea mostrar artículos relacionados con un artículo después del artículo en sí, o desea mostrar los 3 artículos más populares en la barra lateral del sitio, entonces use una consulta secundaria para recopilar los datos y mostrarlos para que muestre los resultados tanto de la consulta principal como de la consulta secundaria juntos. Mientras que si desea mostrar una lista de artículos del blog en una página estática específica en su sitio en lugar de todo el contenido de la página principal, entonces ignore completamente la consulta principal y muestre los datos que desea usando una consulta completamente nueva.

P2: ¿Hay desventajas en usar la clase WP_Query? Teóricamente, puede usar la clase WP_Query de forma segura y efectiva para consultar casi cualquier cosa y cualquier número de consultas en la misma página de su sitio. Pero debe tener cuidado al ejecutar más de una consulta en la misma página usando esta clase, ya que las consultas secundarias repetidas aumentan la carga de trabajo en su base de datos y causan una mayor carga en el servidor, ralentizando el tiempo de carga de la página.

Conclusión. La clase de programación WP_Query ayuda a los desarrolladores de WordPress a mostrar publicaciones o páginas de forma personalizada dentro del sitio, y les permite realizar consultas complejas de la base de datos de forma segura y sencilla. En el artículo de hoy, aprendimos sobre esta clase que se encuentra en los archivos principales de WordPress, que utilizan los desarrolladores principalmente para obtener contenido personalizado de la base de datos (especialmente al desarrollar complementos o temas) y explicamos su uso con ejemplos prácticos.

Si tiene preguntas sobre cómo escribir consultas específicas en WordPress usando esta clase, déjelas en la sección de comentarios debajo del artículo. También le sugerimos que consulte el sitio WordPress Codex

ya que es útil para cualquier desarrollador que desee aprender más sobre consultas personalizadas y sobre el desarrollo de WordPress en general. Lea más: Serie de desarrollo de temas de WordPress | Curso gratuito para aprender a desarrollar temas de WordPress desde cero

DROPIDEA

Esperamos que este artículo te haya aportado valor real. En DROPIDEA, siempre nos esforzamos por ofrecer contenido de alta calidad que te ayude a crecer y evolucionar en el espacio digital. Síguenos para más artículos y guías útiles.

Compartir artículo