Mejoras de consulta en las últimas versiones de WordPress

En el último año, se ha escrito mucho sobre las mejoras en la interfaz de usuario de WordPress: el cambio más mencionado ha sido la experiencia de escritura mejorada.

Pero si eres un desarrollador, querrás saber menos sobre eso y más sobre lo que ha cambiado bajo el capó. Aquí demostraré uno de los cambios más interesantes para los desarrolladores: mejoras a ciertos tipos de consultas.

Los principales cambios son los siguientes:

  • Se agregó soporte para consultas anidadas para consultas sobre metadatos de publicaciones, fechas y términos de taxonomía.
  • Se han agregado parámetros adicionales para consultar los comentarios..
  • Y algunos errores han sido corregidos también!

Echemos un vistazo a los cambios..

Consultas anidadas

En versiones anteriores de WordPress, podrías usar un Y o O Declaración para definir consultas para términos de taxonomía, fechas y metadatos. Así, por ejemplo, los siguientes argumentos se utilizarán en una consulta en un sitio de recetas que genere recetas de desayuno rápido:

 'post', 'tax_query' => array ('relationship' => 'AND', array ('taxonomy' => 'speed', 'field' => 'slug', 'terms' => array ('quick' )), array ('taxonomía' => 'comida', 'campo' => 'slug', 'términos' => array ('desayuno')))); $ consulta = nueva WP_Query ($ args); ?>

Esto busca el 'velocidad' y 'comida' Taxonomías y puestos de salida con el. 'rápido' y 'desayuno' términos respectivamente.

Pero, ¿y si quisieras escribir una consulta más compleja? Digamos que querías recetas rápidas para el desayuno y recetas lentas para el almuerzo (¡tal vez para alguien que quiera desayunar rápido para que tengan más tiempo para preparar el almuerzo!). No quieres usar un simple Y Declaración para unir todos los elementos de su consulta, ya que entonces obtendría recetas lentas para el desayuno. y El almuerzo, por ejemplo. Y no quieres usar un O Declaración que vincula todos los términos, ya que obtendrá todo tipo de recetas que solo tienen uno de los términos consultados junto con otros que desea filtrar.

La buena noticia es que ahora puedes hacer esto. Para consultar recetas rápidas para el desayuno y recetas lentas para el almuerzo, debe utilizar lo siguiente:

 array ('relationship' => 'OR', array ('relationship' => 'AND', array ('taxonomy' => 'meal', 'field' => 'slug', 'terms' => array (' desayuno ')), array (' taxonomía '=>' speed ',' campo '=>' slug ',' términos '=> array (' quick '))), array (' relation '=>' AND ', array ('taxonomy' => 'meal', 'field' => 'slug', 'terms' => array ('lunch')), array ('taxonomy' => 'speed', 'field' => ' slug ',' términos '=> array (' slow '))))))); $ consulta = nueva WP_Query ($ args); ?>

Aquí he usado dos matrices anidadas:

  • La matriz externa utiliza O, porque estamos buscando publicaciones que sean recetas de desayuno rápido o recetas de almuerzo lento.
  • La primera matriz anidada busca publicaciones que son recetas de desayuno rápido, usando Y Porque quieres que la publicación tenga ambos términos..
  • La segunda matriz anidada busca recetas de almuerzo lento, otra vez usando Y.

Por supuesto, puede variar sus consultas para incluir múltiples términos y valores de taxonomía, y ser tan complejo como necesite..

Aplicación de consultas anidadas: Términos de taxonomía, metadatos y fechas

El ejemplo que he dado anteriormente utiliza términos de taxonomía, pero esta función también se ha agregado a las consultas de fecha y metadatos. Los metadatos son potencialmente donde las cosas pueden ponerse interesantes, ya que tiene el alcance para tantos valores.

La sintaxis funciona exactamente de la misma manera para las consultas de fecha y metadatos. Para las meta consultas que reemplazas tax_query con meta_query y use 'llave' y 'valor' como los parámetros. Para consultas de fecha que reemplace tax_query con date_query y use los parámetros de fecha provistos en el Códice de WordPress.

Parámetros de comentarios

Para consultar comentarios, utiliza la WP_Comment_Query clase en lugar de la más comúnmente utilizada WP_Query clase. A esta clase se le han agregado ocho nuevos parámetros:

  • 'autor__in': identifique el autor del comentario (o una variedad de autores)
  • 'author__not_in': identifique los comentarios que no sean de cierto autor (o matriz de autores)
  • 'post_author__in': identifique el autor (o conjunto de autores) de la publicación en la que se hizo el comentario
  • 'post_author__not_in': excluye los comentarios realizados en publicaciones escritas por un autor en particular o una variedad de autores
  • 'comment__in': comentarios con un determinado ID o matriz de ID
  • 'comment__not_in': excluye comentarios con un determinado ID o matriz de ID
  • 'publicar': comentarios realizados en una publicación o conjunto de publicaciones (utilizando la ID de publicación)
  • 'post__not_in': excluye los comentarios realizados en una publicación o conjunto de publicaciones (utilizando la ID de publicación)

Los valores utilizados para estos son el ID de autor, el ID de comentario o el ID de publicación, según corresponda.

Tenga en cuenta que el WP_Comment_Query la clase ahora soporta consultas anidadas también.

Corrección de errores

También ha habido un par de correcciones de errores que pueden resultarle útiles:

  • Un error que causó que las consultas fallaran cuando un date_query fue utilizado junto con un tax_query o meta_query ha sido arreglado.
  • Cuando 'orderby' => 'meta_value' fue utilizado al pasar un 'meta_query' con el O relación en WP_Query, Esto se utiliza para romper la consulta. Esto ha sido arreglado.

Si desea obtener información detallada sobre todos los detalles, puede encontrarla en el sitio principal de WordPress..

Resumen

Estas mejoras a las consultas llevan a WordPress un paso más allá de la capacidad total de CMS. La capacidad de utilizar consultas anidadas significa que puede generar contenido de formas mucho más flexibles y complejas. Será interesante ver cómo la gente los usa.!