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.!
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..
found_posts
Este filtro le permite cambiar la cantidad de elementos encontrados sin el límite que proviene de WP_Query
es 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.
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.
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.
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.)
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.
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.
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..
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..
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..
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.
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.
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. UNIRSE
s trabajo.
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..
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..
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.
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.
Ahora hemos revisado los filtros relacionados con WP_Query
, Pasemos al otro tipo de ganchos: acciones..
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'); ?>
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.
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'). '
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!