Dominar WP_Query Funciones relacionadas

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!

Aprovechar el poder de WP_Query con funciones, acciones y filtros

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..

Funciones relacionadas con WP_Query

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:

Obtención de variables de consulta pública: 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:

Afectando el bucle principal: 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.

Obtención de una sola publicación: get_post ()

Otra función autoexplicativa es get_post (), que usas para obtener una sola publicación. Tiene tres parámetros opcionales:

  • La primera es la ID de la publicación (o la ID de la publicación actual de forma predeterminada).
  • El segundo es el tipo de resultado que obtendrás: OBJETO, ARRAY_A (una matriz asociativa) o ARRAY_N (una matriz numérica).
  • El tercero es la opción de filtrar el resultado. El valor predeterminado es 'crudo' por lo que no se filtrará a menos que lo establezca 'editar', 'monitor', 'atributo''js'.

Guardando Consultas en Arreglos: 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_QueryLos 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).

Obteniendo Páginas: 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_QueryArgumentos, 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.

Comprobando si la consulta devuelve publicaciones: 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.

Trabajando el Loop: el cargo()

El Codex dice que "itera el índice de publicación en el Loop". Hace varias cosas:

  1. Obtiene el siguiente registro de la consulta..
  2. Establece la $ post datos.
  3. Establece el en el lazo parámetro a CIERTO.

Configurando $ 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.

Borrado del bucle actual: 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..

Restableciendo $ postwp_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.

Restableciendo la consulta: 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.

Comprobando si la consulta actual es la consulta principal: 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?

Comprobando si estamos en el bucle: 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.

Fin de la segunda parte

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.!