Dominar WP_Query Acciones y Filtros

Bienvenido a la tercera parte de nuestra serie llamada "Mastering WP_Query". En la parte anterior, pasamos por 13 funciones de WordPress que están relacionadas con el WP_Query clase. En esta parte, revisaremos los ganchos de WordPress (filtros y acciones) que puede usar junto con WP_Query.

Así que, sin más preámbulos, comencemos.!

Filtros relacionados con WP_Query

En la "Referencia de filtros" del Códice, hay 16 filtros de WordPress enumerados bajo el título "Filtros de WP_Query". En esta sección, vamos a hablar de ellos. Será una sección bastante rápida porque la mayoría de los filtros se refieren a diferentes "cláusulas" de una consulta de base de datos realizada por WP_Query clase.

Nos pondremos en contacto con ellos inmediatamente después de revisar los filtros que no están relacionados con las cláusulas..

Filtrar el número de publicaciones encontradas para la consulta: found_posts

Este filtro le permite cambiar la cantidad de elementos encontrados sin el límite que proviene de WP_Queryes publicaciones por página argumento.

Este filtro es particularmente útil para crear paginación personalizada. A ver que dice el Codex:

Por ejemplo, si está declarando un valor de desplazamiento personalizado en sus consultas, WordPress NO deducirá el desplazamiento del parámetro $ wp_query-> found_posts (por ejemplo, si tiene 45 publicaciones utilizables después de un desplazamiento de 10, WordPress ignorará la compensar y aún dar a found_posts un valor de 55).

Tiene sentido.

Filtrado de la consulta para ejecutar para recuperar las publicaciones encontradas: found_posts_query

El número de elementos encontrados se calcula con el SELECCIONAR FOUND_ROWS () comando en MySQL. Este filtro le permite cambiar este comando a otra cosa, en caso de que necesite calcular el número de elementos encontrados de una manera diferente.

Filtrado de toda la consulta SQL: posts_request

Si desea cambiar la consulta SQL completada, este es el filtro que debe usar. Básicamente, anula toda la consulta SQL compuesta por el WP_Query clase.

Filtrado de la matriz devuelve la consulta: posts_resultados

Si quieres alterar el PHP formación ese WP_Query Genera con la consulta SQL, puede utilizar este filtro. Hay un buen ejemplo en el Codex para que pueda ver cómo funciona..

(Tenga en cuenta que este filtro maneja la crudo matriz que se genera a partir de la consulta SQL.)

Filtrar la matriz de mensajes recuperados: the_posts

diferente a posts_resultados, la the_posts el filtro espera que la matriz sea procesada internamente, lo que significa que la matriz se verificará contra publicaciones no publicadas y pegajosas. Use este si no desea publicar o publicar en su matriz.

Filtrar la lista de campos (y la SELECCIONAR Cláusula) de la consulta: campos de posts

los SELECCIONAR La cláusula de una consulta SQL determina qué campos de la base de datos se seleccionarán de las filas de la base de datos resultantes, y este filtro lo ayuda a filtrarlo.

Filtrando el LÍMITE Cláusula de la consulta: limites posteriores

los LÍMITE La cláusula de una consulta SQL establece las limitaciones de la consulta y este filtro le ayuda a filtrarla..

Filtrando el DISTINTO Cláusula de la consulta: posts_distinto

los DISTINTO La cláusula de una consulta SQL indica que la consulta debe devolver solo resultados diferentes, y este filtro le ayuda a filtrarla. Naturalmente, WP_Query no devuelve resultados distintos, pero cuando utiliza este filtro con una función que devuelve "DISTINTO", La consulta se ajustará para devolver solo resultados diferentes..

Filtrando el DÓNDE Cláusula de la consulta: posts_where

los DÓNDE cláusula de una consulta SQL se utiliza para filtrar MySQL SELECCIONAR, INSERTAR, ACTUALIZAR o BORRAR declaraciones, y este filtro le ayuda a filtrar este filtro. Mientras que la WP_Query La clase hace todo el trabajo necesario para filtrar los resultados, puede ir un paso más allá utilizando este filtro..

Filtrando el DÓNDE Cláusula de la consulta después de calcular la paginación: posts_where_paged

Este filtro es una iteración de la posts_where filtro, que puede utilizar con consultas de paginación.

Filtrando el DÓNDE Cláusula de una consulta de búsqueda: posts_search

Otra iteración a la posts_where filtro es este filtro, que puede utilizar para modificar el DÓNDE cláusula de una consulta que se utiliza para obtener resultados de búsqueda en WordPress.

Filtrando el UNIRSE Cláusula de la consulta: posts_join

los UNIRSE La cláusula de una consulta SQL le permite trabajar su comando SQL dentro de varias tablas de base de datos, y este filtro lo ayuda a filtrarlo. Esta es una de las partes avanzadas de MySQL, así que no recomiendo usar este filtro a menos que sepa muy bien cómo funciona MySQL. UNIRSEs trabajo.

Filtrando el UNIRSE Cláusula de la consulta después de calcular la paginación: posts_join_paged

Tal como posts_where_paged es una iteración de posts_where, esta es una iteración para el posts_join Filtro que funciona en consultas de paginación..

Filtrando el ORDEN POR Cláusula de la consulta: posts_orderby

los ORDEN POR La cláusula de una consulta SQL organiza el orden de la consulta y este filtro le ayuda a filtrar el orden..

Filtrando el AGRUPAR POR Cláusula de la consulta: posts_grupo

los AGRUPAR POR La cláusula de una consulta SQL hace que la consulta devuelva resultados "agrupados" por un campo de base de datos, y este filtro le ayuda a filtrar cómo agrupar los resultados.

Filtrado de todas las cláusulas de la consulta: posts_clausas

Si desea tratar todas las cláusulas al mismo tiempo, también hay un filtro para eso: posts_clausas. Este filtro cubre la DÓNDE, AGRUPAR POR, UNIRSE, ORDEN POR, DISTINTO, SELECCIONAR, y Los limites cláusulas.

Acciones relacionadas con WP_Query

Ahora hemos revisado los filtros relacionados con WP_Query, Pasemos al otro tipo de ganchos: acciones..

Interferir con la consulta antes de ejecutarse: pre_get_posts

Antes de analizar la consulta, puede interactuar con ella (por ejemplo, inyectar variables de consulta adicionales) mediante el uso de esta acción. Veamos un ejemplo rápido de Tom McFarlin para aprender cómo excluir una categoría del bucle principal:

set ('category__not_in', $ excluded); * / set_query_var ('category__not_in', $ excluded);  add_action ('pre_get_posts', 'tutsplus_exclude_category'); ?>

Manejar el análisis de la consulta: parse_query

diferente a pre_get_posts, que interviene con la consulta antes de Se establecen las variables de consulta, el parse_query la acción maneja el proceso después Se establecen las variables de consulta. Por lo tanto, debe usar esta acción si desea verificar las variables actuales y actuar de acuerdo con ellas.

Modificar el objeto de la publicación: el cargo

El termino la acción es un poco confuso porque es el nombre de un gancho de acción, un WP_Query-función relacionada y también un método de la WP_Query clase.

Esta acción, como dice el Codex, nos permite modificar el objeto de publicación inmediatamente después de ser consultado y configurado. Usando esta acción, puedes cambiar la salida directamente. Veamos un ejemplo rápido:

'. __ ('DESTACADO', 'tutsplus'). '
'; add_action ('the_post', 'tutsplus_featured_badge'); ?>

Fin de la tercera parte

Las acciones y los filtros son siempre un tema divertido para hablar y escribir. (Sé por hecho que mis dos series sobre las acciones de WordPress y los filtros de WordPress fueron divertidas de escribir y obtuvieron una gran reacción de nuestra base de lectores). Espero que hayan disfrutado esta parte tanto como yo disfruté al escribirla..

¿Quieres añadir algo al artículo? Dispara un comentario en la sección de comentarios a continuación. Y si te gustó el artículo, no olvides compartirlo con tus amigos.!

Nos vemos en la siguiente parte, donde hablaremos sobre las propiedades y los métodos de WP_Query clase!