Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Argumentos WP_Query: Autor, búsqueda, contraseña y permisos

by
Read Time:7 minsLanguages:
This post is part of a series called Mastering WP_Query.
WP_Query Arguments: Status, Order and Pagination
Mastering WP_Query: 10 Useful Examples

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Hasta ahora en esta serie has aprendido sobre la selección de argumentos que puedes usar con la clase WP_Query, para seleccionar entradas según tipo de entrada, categoría, etiqueta, metadato, fecha, estado y mucho más.

En este último tutorial sobre argumentos WP_Query, repasaré algunos parámetros que se usan con menos frecuencia pero que pueden proporcionar más flexibilidad a tus consultas.

Los parámetros que veremos aquí sirven para lo siguiente:

  • Autor
  • Búsqueda
  • Contraseña
  • Permisos
  • Cacheado
  • Campos devueltos

Antes de empezar, recordemos cómo escribir el código de tus argumentos con WP_Query.

Recapitulación sobre cómo funcionan los argumentos en WP_Query

Cuando creas el código de una consulta con WP_Query en tus temas o plugins, debes incluir cuatro elementos principales:

  • Los argumentos para la consulta, usando parámetros, los cuales veremos en este tutorial.
  • La consulta en sí.
  • El loop.
  • Finalizar la consulta: cerrar las etiquetas if y while y resetear los datos de la entrada.

En la práctica esto tendrá un aspecto parecido a esto:

Los argumentos son lo que le indica a WordPress qué datos extraer de la base de datos y esto es lo que veremos aquí. Así que en lo nos centraremos es en la primera parte del código:

Como puedes ver, los argumentos están contenidos en un array. Aprenderás a codificarlos conforme avancemos en este tutorial.

Crear el código de tus argumentos

Existe una forma concreta de codificar los argumentos en el array, se trata de la siguiente:

Debes encerrar los parámetros y sus valores entre comillas simples, usar entre aquellos y sus respectivos valores =>, y separar estos pares con una coma. Si no lo haces correctamente, WordPress podría no añadirlos todos en la consulta o podrías obtener la temida pantalla blanca.

Parámetros de autor

Existen cuatro parámetros que puedes usar para realizar consultas basándote en el autor:

  • author (int): usa el ID del autor
  • author_name (string): usa 'user_nicename' (no el nombre)
  • author__in (array): usa el ID del autor
  • author__not_in (array)

La primera, author, te permite consultar entradas escritas por uno o más autores, indicando el ID del o de los mismos:

El anterior código consultará todas las entradas escritas por aquel autor cuyo ID es 2.

También podrías usar una cadena para consultar las entradas escritas por más de un autor:

Si quieres consultar según el nombre del autor, usarías el parámetro author_name:

Este parámetro toma el valor del campo user_nicename de la base de datos como argumento, el cual aparece como alias en la página de administración de los usuarios:

User admin screen showing nicknameUser admin screen showing nicknameUser admin screen showing nickname

Advierte que este campo es editable por los usuarios, así que es más seguro usar el parámetro author si crees que existe alguna posibilidad de que tus usuarios lo cambien.

También puedes consultar las entradas mediante un array de autores:

El código anterior consultará las entradas escritas por dos autores: aquellos con el ID 1 y 2, proporcionándote los mismos resultados que la cadena que usé anteriormente en el parámetro author.

Por último, puedes excluir entradas escritas por uno o más autores usando el parámetro author__not_in. El siguiente argumento consulta todas las entradas excepto aquellas escritas por el autor 1:

También puedes excluir múltiples autores:

Como alternativa, puedes usar el parámetro author y usar un signo negativo delante del ID del autor para excluirlo:

Parámetro de búsqueda

Existe un único parámetro para la búsqueda, se trata de s. Úsalo para consultar las entradas que coincidan con un término de búsqueda específico. Por ejemplo, para buscar las entradas que contengan las palabras clave 'my favorite food' (mi comida favorita), usarías lo siguiente:

Esto te podría resultar útil para localizar entradas relacionadas con palabras clave similares, por ejemplo.

Parámetros de contraseña

Puedes usar dos parámetros de contraseña para consultar las entradas protegidas o aquellas no protegidas con contraseña:

  • has_password (bool)
  • post_password (string)

El primer parámetro, has_password, te permite consultar entradas con o sin protección por contraseña. Para consultar las entradas protegidas con contraseña usa lo siguiente:

Y para las entradas que no tienen contraseña:

También puedes consultar especificando una contraseña concreta, usando el parámetro post_password.

Parámetros para los permisos

Sólo existe un parámetro para los permisos, perm, que puedes usar para consultar las entradas para la cual el actual usuario tiene permiso de lectura. Coge el valor 'readable' y está diseñado para ser combinado con otros argumentos.

De manera que para consultar entradas protegidas por contraseña y mostrarlas sólo si el usuario tiene los permisos adecuados, usarías lo siguiente:

O para mostrar entradas en estado de borrador si el usuario tiene permiso para verlas, usarías esto:

Parámetros de cacheado

Existen tres parámetros sobre el almacenamiento en caché, que evitan que los datos recuperados por la consulta sean agregados a la caché:

  • cache_results (boolean): información sobre la caché de la entrada
  • update_post_meta_cache (boolean): caché de la información de metadatos de la entrada
  • update_post_term_cache (boolean): caché de la información sobre términos del post

El valor predeterminado de los tres es true: no necesitas usarlos si no quieres que los datos se añadan a la caché.

Así que para mostrar las entradas de el post type product pero no añadir información de la misma a la caché, usarías lo siguiente:

Normalmente no deberías usar estos parámetros, ya que es una buena práctica añadir los datos de las entradas a la caché. Sin embargo en ocasiones podrías querer recuperar entradas de forma que puedas usar algunos de sus datos, en cuyo caso no necesitas el resto de los datos de la entrada en la caché. Un ejemplo podría ser cuando sólo quieres mostrar una lista con los títulos de las entradas a modo de enlaces, en cuyo caso no necesitas añadir los datos de los términos o los metadatos de la entrada a la caché:

Parámetro campos devueltos

Puedes usar el parámetro fields para especificar qué campos devolver de tu consulta. Esto puede ahorrarte la devolución de datos desde campos de la base de datos que no necesitas al mostrar la información en el loop.

El comportamiento por defecto devuelve todos los datos, pero tienes dos opciones con el parámetro fields para restringirlo. Primero, el argumento 'ids':

Esto sólo devolvería un array de IDs de entradas y ningún otro campo. Si quisieses mostrar algo en tu loop (como el título de la entrada) tendrías que usar funciones como get_the_title ($post->ID); para mostrar el título, que sería una forma retorcida de hacerlo.

El otro argumento que puedes usar extrae un array asociativo de IDs de entradas junto con los IDs de sus entradas hijas:

Podrías usar esto para consultar entradas según otros argumentos y además sus hijas.

Sumario

Esta parte de la serie sobre WP_Query introduce el último conjunto de parámetros para la clase WP_Query. Puedes usarlos para consultar las entradas de un autor, las entradas protegidas por contraseña, la contraseña en sí y palabras clave, y establecer si los resultados de la consulta serán añadidos a la caché y qué campos serán devueltos por la consulta.

En la siguiente parte de esta serie, verás algunos ejemplos prácticos de WP_Query para tus temas o tus plugins.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.