Trabajando con
Trabajando conValores meta

Valores meta

Para obtener y filtrar por valores meta, sus claves meta deben añadirse a la lista de permitidos.

Podemos recuperar valores meta para entradas personalizadas, usuarios, comentarios y taxonomías (etiquetas y categorías), consultando los campos metaValue (para un único valor) y metaValues (para un array de valores) desde el tipo correspondiente:

  • Post.metaValue
  • Post.metaValues
  • GenericCustomPost.metaValue
  • GenericCustomPost.metaValues
  • User.metaValue
  • User.metaValues
  • Comment.metaValue
  • Comment.metaValues
  • PostTag.metaValue
  • PostTag.metaValues
  • PostCategory.metaValue
  • PostCategory.metaValues
  • GenericTag.metaValue
  • GenericTag.metaValues
  • GenericCategory.metaValue
  • GenericCategory.metaValues

Consultar múltiples valores meta a la vez

Podemos consultar múltiples entradas meta como un objeto JSON, mediante el campo meta (para los mismos tipos que arriba).

El objeto JSON tiene:

  • Clave: la clave meta
  • Valor: una lista de valores (si el valor meta es un escalar, se recupera como una lista de 1 elemento)

Consultar claves meta

Podemos obtener la lista de todas las claves meta permitidas en la entidad, mediante el campo metaKeys (para los mismos tipos que arriba).

Este campo es un elemento de datos "sensible".

Filtrar por meta

Las entradas personalizadas, comentarios, usuarios y taxonomías (etiquetas y categorías) también pueden filtrarse por meta, utilizando el input metaQuery.

Este input ofrece una mejora sobre cómo se proporcionan los argumentos meta_query (a las funciones get_posts, get_users, etc), en que las validaciones de tipo se aplican estrictamente en el esquema GraphQL, y solo se exponen las combinaciones que tienen sentido.

Esto se logra utilizando el input field "oneof" compareBy, que ofrece 4 posibilidades. Dependiendo de la opción elegida, pueden utilizarse diferentes operadores para la comparación:

Input compareByOperadores posibles
1. keyEXISTS
NOT EXISTS
2. numericValue=
!=
>
>=
<
\<=
3. stringValue=
!=
LIKE
NOT LIKE
REGEXP
NOT REGEXP
RLIKE
4. arrayValueIN
NOT IN
BETWEEN
NOT BETWEEN

Además, al comparar por key, no es necesario proporcionar el input value.

Podemos pasar varios elementos bajo metaQuery, y decidir si hacer un AND o OR de sus condiciones pasando el input relation en el primer elemento de la lista.