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

Dominar WP_Meta_Query y WP_Date_Query

by
Read Time:4 minsLanguages:
This post is part of a series called Mastering WP_Query.
Mastering WP_Comment_Query
Query Improvements in the Latest Versions of WordPress

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

Bienvenidos a la parte final de esta serie, bueno, técnicamente la última parte será el artículo titulado "Final de serie", pero ya te haces una idea. En esta parte, aprenderás sobre dos clases hermanas llamadas WP_Meta_Query y WP_Date_Query.

Sin más preámbulos, ¡comencemos!

Trabajar con todo tipo de metadatos a través de la clase WP_Meta_Query

La clase WP_Meta_Query es una "clase auxiliar", que ayuda a WP_Query a realizar consultas usando metadatos.

Como sabes, WordPress almacena tres tipos de metadatos en la base de datos: post meta (metadatos de posts), user meta (metadatos de usuarios) y comment meta (metadatos de comentarios). En los anteriores tutoriales vimos que podemos ejecutar consultas de metadatos dentro de las consultas que realizamos con las clases WP_Query, WP_User_Query y WP_Comment_Query (usando el parámetro 'meta_query'). Al realizar esas consultas WP_Meta_Query está ejecutándose realmente.

Resulta que puedes obtener los SQLs para estas consultas relacionadas con metadatos con la ayuda de la clase WP_Meta_Query. En realidad, esta clase no obtiene los resultados de la consulta en cuestión, sino que prepara los comandos SQL para que los uses en cualquier otro lugar.

Ejemplo de uso de la clase WP_Meta_Query

No podemos decir que esto es un tutorial si no ponemos algún ejemplo, ¿verdad? A través de un sencillo ejemplo, vamos a ver cómo podemos usar la clase WP_Meta_Query en la vida real. (cierto, obtener el código SQL para una consulta meta-relacionada es algo extremadamente específico, pero voy a tratar de mostrar un ejemplo del mundo real.)

Imaginemos que deseas crear un "plugin de entradas relacionadas" especial para tu propio sitio web, donde enumerarás las entradas que tengan el mismo valor meta para una clave meta, u otro valor meta para otra clave meta. Y en lugar de realizar una consulta meta dentro de una instancia WP_Query, quieres obtener el código SQL de la consulta para usarla dinámicamente en bloques de código independientes. Estos son los pasos para preparar ese código SQL:

Ahí lo tienes: la variable $my_meta_sql almacena el código SQL para tu consulta concreta que podrás usar en cualquier lugar que desees dentro de tu proyecto.

Consultas de fecha de discusión con la clase WP_Date_Query

Al igual que WP_Meta_Query, WP_Date_Query es una clase auxiliar para las clases WP_Query, WP_User_Query y WP_Comment_Query. Esta clase auxiliar se introdujo en la versión 3.7 de WordPress. En aquel entonces, la clase no admitía WP_User_Query, pero desde la versión 4.1, puedes consultar dentro de la tabla de usuarios (en concreto en la columna user_registered).

Al igual que WP_Meta_Query y su capacidad para consultar claves y valores meta, la clase WP_Date_Query nos permite consultar campos de fecha dentro de las tablas de los posts, los comentarios y los usuarios. Y exactamente igual que WP_Meta_Query, esta clase auxiliar también te permite devolver el código SQL preparado para ejecutar una consulta relacionada con la fecha.

Ejemplo de uso de la clase WP_Date_Query

Para comprender totalmente cómo funciona la clase WP_Date_Query, vamos a ver un ejemplo que hace uso de la misma. Será otro ejemplo innecesariamente específico, pero no estaría bien dejar esta parte sin mostrar un ejemplo.

Imaginemos que, por alguna razón, necesitamos consultar los comentarios que se hacen durante el mes actual y antes del mediodía. (Por favor, ¡envíame un comentario si encuentras un buen caso para obtener comentarios realizados en el mes actual y antes del mediodía!) A continuación se muestra cómo obtener el código SQL para esta extraña consulta:

Aquí lo tienes. Ten en cuenta que puedes utilizar formatos de fecha relativa PHP, que son realmente útiles.

Consejo rápido: Christian Bruckner tiene un excelente artículo en MarketPress.com sobre cómo funciona WP_Date_Query. Está un poco desfasado (porque fue escrito antes del lanzamiento de la versión 4.1 de WordPress) pero está muy bien escrito y todavía es una lectura muy recomendable. Asegúrate de consultarlo.

Recopilándolo todo

Con estas dos clases auxiliares, estamos terminando el largo viaje de disección de la clase WP_Query. Esta ha sido una de las series de tutoriales más larga en la historia de Tuts+, ¡así que gracias por seguir con nosotros hasta el final! En la siguiente (y última) parte, vamos a recapitular por última vez todo lo que hemos visto y cerraremos la serie.

¿Tienes algo que añadir a este artículo? Si es así, no dudes en compartir tus pensamientos en la sección de comentarios que viene a continuación. Y si te gustó el artículo, ¡no te olvides de compartirlo entre tus amigos!

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.