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.metaValuePost.metaValuesGenericCustomPost.metaValueGenericCustomPost.metaValuesUser.metaValueUser.metaValuesComment.metaValueComment.metaValuesPostTag.metaValuePostTag.metaValuesPostCategory.metaValuePostCategory.metaValuesGenericTag.metaValueGenericTag.metaValuesGenericCategory.metaValueGenericCategory.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 compareBy | Operadores posibles |
|---|---|
1. key | EXISTSNOT EXISTS |
2. numericValue | =!=>>=<\<= |
3. stringValue | =!=LIKENOT LIKEREGEXPNOT REGEXPRLIKE |
4. arrayValue | INNOT INBETWEENNOT 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.