Hasta ahora, en esta serie, ha aprendido sobre una selección de argumentos que puede usar con el WP_Query
clase, para seleccionar publicaciones por tipo de publicación, categoría, etiqueta, metadatos, fecha, estado y mucho más.
En este tutorial final sobre WP_Query
argumentos, analizaré algunos parámetros de uso menos frecuente que pueden dar a sus consultas aún más flexibilidad.
Los parámetros que cubriremos aquí son para:
Antes de comenzar, veamos brevemente cómo codifica sus argumentos con WP_Query
.
Cuando codificas WP_Query
en sus temas o complementos, debe incluir cuatro elementos principales:
En la práctica esto se parecerá a lo siguiente:
have_posts ()) // Iniciar el bucle sobre los resultados de la consulta. while ($ consulta-> have_posts ()) $ consulta-> the_post (); // Los contenidos de los resultados de la consulta consultados van aquí. // Restaura los datos originales de la publicación. wp_reset_postdata (); ?>
Los argumentos son lo que le dice a WordPress qué datos obtener de la base de datos y los que cubriré aquí. Así que todo lo que nos estamos enfocando aquí es la primera parte del código:
$ args = array (// Argumentos para su consulta);
Como puede ver, los argumentos están contenidos en una matriz. Aprenderás cómo codificarlos mientras trabajas en este tutorial..
Hay una forma específica de codificar los argumentos en la matriz, que es la siguiente:
$ args = array ('parámetro1' => 'valor', 'parámetro2' => 'valor', 'parámetro3' => 'valor');
Debe incluir los parámetros y sus valores entre comillas simples, usar =>
Entre ellos, y separarlos con una coma. Si se equivoca, es posible que WordPress no agregue todos sus argumentos a la consulta o que obtenga una pantalla en blanco..
Hay cuatro parámetros que puede utilizar para consultar por autor:
autor
(En t): usar ID de autornombre del autor
(cuerda): use 'user_nicename' (NO nombre)autor__in
(formación): usar ID de autorauthor__not_in
(formación)El primero, autor
, le permite consultar las publicaciones de uno o más autores, proporcionando el ID del autor:
$ args = array ('author' => '2');
El código anterior consulta todas las publicaciones del autor cuyo ID es 2
.
También puede utilizar una cadena para consultar publicaciones de más de un autor:
$ args = array ('author' => '1, 2');
Si quisiera consultar por nombre, usaría el nombre del autor
parámetro:
$ args = array ('author_name' => 'rachelmccollin');
Este parámetro toma el valor de la nombre de usuario
campo en la base de datos como su argumento, que se muestra como el apodo en la pantalla de administración de Usuarios:
Tenga en cuenta que, como lo pueden editar los usuarios, estará más seguro de usar el autor
parámetro si crees que tus usuarios podrían cambiarlo.
También puede consultar las publicaciones de un conjunto de autores:
$ args = array ('author__in' => array ('1', '2'));
Lo anterior solicitará publicaciones de dos autores: aquellos con ID 1
y 2
, dándote los mismos resultados que la cadena que usé con el autor
parámetro arriba.
Finalmente, puede excluir las publicaciones de uno o más autores utilizando la author__not_in
parámetro. El argumento debajo de las consultas para todas las publicaciones excepto las de autor 1
:
$ args = array ('author__not_in' => array ('1'));
O puede excluir varios autores:
$ args = array ('author__not_in' => array ('1', '2'));
Alternativamente puedes usar el autor
parámetro y use un signo menos delante del ID de autor para excluir a un autor:
$ args = array ('author' => '-2');
Hay un solo parámetro para la búsqueda, que es s
. Úselo para consultar publicaciones que coincidan con un término de búsqueda. Así, por ejemplo, para consultar las publicaciones que contengan las palabras clave "mi comida favorita", usarías esto:
$ args = array ('s' => 'mi comida favorita');
Puede encontrar esto útil para buscar publicaciones relacionadas con palabras clave similares, por ejemplo.
Puede utilizar los dos parámetros de contraseña para consultar publicaciones con y sin protección de contraseña:
has_password
(bool)post_password
(cuerda)El primer parametro, has_password
, le permite consultar las publicaciones con o sin protección de contraseña. Para consultar las publicaciones protegidas con contraseña:
$ args = array ('has_password' => true);
Y para los posts que no tienen contraseñas:
$ args = array ('has_password' => false);
También puede consultar por la propia contraseña, utilizando el post_password
parámetro:
$ args = array ('post_password' => 'mypassword');
Solo hay un parámetro disponible para permisos, permanente
, que utiliza para consultar las publicaciones que el usuario actual tiene permiso para leer. Toma el 'legible'
Valor y está diseñado para ser combinado con otros argumentos..
Por lo tanto, para consultar las publicaciones protegidas por contraseña y mostrarlas solo si el usuario tiene los permisos adecuados, debe usar esto:
$ args = array ('has_password' => true, 'perm' => 'legible');
O para mostrar las publicaciones preliminares si el usuario actual tiene permiso para verlas, usaría esto:
$ args = array ('post_status' => 'draft', 'perm' => 'legible');
Hay tres parámetros de almacenamiento en caché, que impiden que los datos recuperados por la consulta se agreguen a la memoria caché:
cache_results
(booleano): caché de información del postupdate_post_meta_caché
(booleano): caché de información meta del postupdate_post_term_cache
(booleano): caché de información post plazoEl valor predeterminado de los tres es cierto
: no necesita usarlos si desea que los datos se agreguen al caché.
Así que para mostrar todos los mensajes de la producto
tipo de publicación pero no agregue información de la publicación al caché, usaría esto:
$ args = array ('post_type' => 'product', 'cache_results' => false);
Normalmente, no debe usar estos parámetros, ya que es una buena práctica agregar datos de publicación al caché. Sin embargo, es posible que a veces desee recuperar las publicaciones para poder utilizar solo algunos de los datos de la publicación, en cuyo caso no necesita el resto de los datos de la publicación en el caché. Un ejemplo podría ser cuando solo desea generar una lista de títulos de publicaciones con enlaces, en cuyo caso no necesita que los datos o los metadatos del término posterior se agreguen a la memoria caché:
$ args = array ('post_type' => 'producto', 'update_post_meta_cache' => false, 'update_post_term_cache' => false);
Puedes usar el campos
parámetro para especificar qué campos devolver de su consulta. Esto puede guardar los datos devueltos de los campos en la base de datos que no necesita al generar los datos en su bucle.
El valor predeterminado es devolver todos los campos, pero tiene dos opciones con campos
parámetro para restringir esto. Primero el 'ids'
argumento:
$ args = array ('fields' => 'ids');
Esto solo devolvería una matriz de ID de publicación y no otros campos. Si desea generar algo en su bucle (como el título de la publicación), tendrá que usar funciones como get_the_title ($ post-> ID);
para dar salida al título, que sería una manera larga de hacer las cosas.
El otro argumento que puede usar obtiene una matriz asociativa de ID de publicación con ID de publicación secundaria:
$ args = array ('fields' => 'id => parent');
Usaría esto para consultar publicaciones según sus otros argumentos más sus hijos.
Esta parte de la serie sobre WP_Query
Introduce el conjunto final de parámetros para el WP_Query
clase. Puede usarlos para consultar publicaciones por autor, estado protegido por contraseña o la propia contraseña y los términos de búsqueda, y para establecer si los resultados de la consulta se agregan a la caché y qué campos devuelve la consulta..
En la siguiente parte de esta serie, verá algunos ejemplos prácticos de uso de WP_Query
en tus temas o complementos.