Hola, y bienvenidos a la segunda parte de la serie llamada "Mastering WP_Query". En la primera parte, comenzamos con la serie simplemente introduciendo lo que el WP_Query
clase es Y en esta segunda parte, vamos a aprender sobre las funciones relacionadas con WP_Query
.
Vamos a empezar!
No soy un experto en programación, pero puedo ver que WP_Query
La clase es uno de los mejores ejemplos del patrón MVC. Es extremadamente potente, completamente extensible y muy fácil de usar una vez que conozca los conceptos básicos.
Además de sus propiedades, métodos y parámetros (que veremos en el futuro), WordPress ofrece funciones y enlaces adicionales (es decir, acciones y filtros) para trabajar con el WP_Query
clase. En este tutorial, vamos a conocer las funciones y en la siguiente parte, veremos acciones y filtros relacionados con WP_Query
. Si ve que olvidé algo, no dude en notificarme mediante un comentario..
Hay 13 funciones de WordPress que funcionan con el WP_Query
clase que puede ayudarte a aprovechar el poder de WP_Query
. No necesitan ninguna introducción, así que aquí vamos:
get_query_var ()
El nombre de nuestra primera función habla por sí mismo, de verdad: toma lo global $ wp_query
objeto y recupera una variable de consulta pública de él. Tiene dos parámetros: el primero es la variable para devolver su valor, y el segundo es un valor predeterminado para devolver si la variable no está establecida:
query_posts ()
Para ser honesto, este es un malo función. Realmente no tienes que usarlo en absoluto, pero por el simple hecho de decir "la forma correcta", lo revisaremos y te diremos que es "la manera incorrecta".
query_posts ()
es una función que altera la consulta principal, dejando a un lado la consulta principal y ejecutando una nueva consulta, y tendrá que usar wp_reset_query ()
limpiar después.
Esta función es una de las más mal utilizado Funciones en el núcleo de WordPress. No debe usarlo para crear consultas secundarias; puede usar el WP_Query
clase o la get_posts ()
Función (de la que hablaremos más adelante en este tutorial). Tampoco debe usarlo para modificar la consulta principal, debe usar el pre_get_posts
Acción (de la que hablaremos también más adelante). Incluso el Codex nos disuade de usarlo y muestra alternativas..
En pocas palabras: no lo uses.
get_post ()
Otra función autoexplicativa es get_post ()
, que usas para obtener una sola publicación. Tiene tres parámetros opcionales:
OBJETO
, ARRAY_A
(una matriz asociativa) o ARRAY_N
(una matriz numérica).'crudo'
por lo que no se filtrará a menos que lo establezca 'editar'
, 'monitor'
, 'atributo'
o 'js'
.get_posts ()
los get_posts ()
La función nos permite ejecutar consultas y guardarlas como matrices para usarlas en varios lugares. Requiere los mismos argumentos con WP_Query
Así podrás personalizar la consulta a tu gusto. (Podremos revisar WP_Query
Los parámetros en el futuro, así que estad atentos. Es la mejor y más eficiente forma de crear listas de publicaciones, pero no bucles..
'news', 'order' => 'ASC', 'orderby' => 'post_title', 'posts_per_page' => -1); // Devuelve una matriz de todas las publicaciones en la categoría "noticias". $ all_posts_list = get_posts ($ args); ?>
Aunque esta función se puede usar para ejecutar "consultas secundarias" sin problemas, el Codex recomienda usar WP_Query
Al crear múltiples bucles y usar get_posts ()
al buscar una lista de correos. Peter R. Knight explica la diferencia entre get_posts ()
y WP_Query
En términos simples: la principal diferencia es que WP_Query
realiza más consultas de base de datos (datos de publicación, metadatos, datos de autor y datos de comentarios) mientras get_posts ()
realiza una sola consulta (publicar datos).
get_pages ()
Esta impar La función tiene el propósito de obtener una lista de páginas, aunque tiene un tipo de mensaje
parámetro que también puede permitirle seleccionar otro tipo de publicación (siempre que el tipo de publicación sea jerárquico, de lo contrario, devuelve falso
).
'ASC', 'sort_column' => 'post_title', 'hierarchical' => 1, 'exclude' =>, 'include' => ", 'meta_key' =>", 'meta_value' => ", 'autores '=> ",' child_of '=> 0,' parent '=> -1,' exclude_tree '=>",' number '=> ",' offset '=> 0,' post_type '=>' page ', 'post_status' => 'publish'); $ pages = get_pages ($ args);?>
Acepta argumentos que son muy similares a WP_Query
Argumentos, pero son ligeramente diferentes:
Orden de clasificación
: Si ordenar las páginas de forma ascendente (asc
) o descendente (desc
) orden.sort_column
: Cómo ordenar las páginas. Acepta título de la entrada
, menu_order
, posfechar
, post_modificado
, CARNÉ DE IDENTIDAD
, post_autor
, y Nombre del puesto
.jerárquico
: Ya sea para listar páginas jerárquicamente (1
) o no (0
).excluir
: Una lista separada por comas o una matriz de ID de página para excluir de la lista.incluir
: Una lista separada por comas o una matriz de ID de página para incluir de la lista y excluir todo lo demás.meta_key
: Cuando se usa con el meta_valor
argumento, solo incluye páginas que tienen la clave meta y el valor definidos.meta_valor
: Cuando se usa con el meta_key
argumento, solo incluye páginas que tienen la clave meta y el valor definidos.autores
: Una lista separada por comas de ID de autor.niño de
: Un ID de una página para buscar solo a sus hijos y nietos en el listado.padre
: Enumere las páginas que tienen el ID de página proporcionado como padre. Para que este argumento funcione, la jerárquico
el argumento debe establecerse en 0
.exclude_tree
: Una lista separada por comas o una matriz de identificadores de página para excluir con sus hijos.número
: Número de páginas a buscar.compensar
: Número de páginas a saltar desde la parte superior..tipo de mensaje
: El tipo de publicación a consultar. Naturalmente, el valor predeterminado es página
.post_status
: Una lista separada por comas de los tipos de estado de publicación para incluir.have_posts ()
Sin aceptar ningún parámetro, esta función simplemente devuelve. CIERTO
si la consulta devuelve algún registro y FALSO
si no.
el cargo()
El Codex dice que "itera el índice de publicación en el Loop". Hace varias cosas:
$ post
datos.en el lazo
parámetro a CIERTO
.$ post
: setup_postdata ()
Esta función también habla por sí misma: configura los datos de publicación globales. Veamos lo que dice el Codex sobre este:
setup_postdata () llena las variables globales
$ id, $ authordata, $ currentday, $ currentmonth, $ page, $ pages, $ multipage, $ more, $ numpages
, que ayudan a muchas etiquetas de plantilla a funcionar en el contexto de la publicación actual. No asigna lo global.$ post
variable, pero parece esperar que su argumento sea una referencia a ella.
rewind_posts ()
Otra función cuyo nombre indica su funcionalidad: esta función simplemente "rebobina" el Loop para que pueda ejecutarlo de nuevo más tarde..
$ post
: wp_reset_postdata ()
Esta función restablece el global. $ post
Variable de vuelta a la primera entrada en la consulta principal. Es mejor usar este después de una consulta secundaria.
wp_reset_query ()
Este debe usarse si se modifica la consulta principal (con el query_posts ()
función o la pre_get_posts
acción que veremos en la siguiente parte) para que la consulta principal pueda restablecerse.
is_main_query ()
Esta es una etiqueta condicional que devuelve CIERTO
si la consulta actual es la consulta principal y FALSO
si no lo es Simple a la derecha?
en el lazo()
Otra etiqueta condicional es en el lazo()
que simplemente vuelve CIERTO
o FALSO
Si tu código se está ejecutando dentro del Loop o no.
Ahí tienes, ahora ya sabes (probablemente) todas las funciones relacionadas con WP_Query
! Estén atentos para la próxima parte donde aprenderemos sobre WP_Query
Acciones relacionadas y filtros..
¿Tiene algún comentario o algo que agregar a esta parte? Siéntase libre de compartir sus pensamientos comentando a continuación. Y si te gustó el artículo, no olvides compartirlo con tus amigos.!