Lavorare con
Lavorare conValori meta

Valori meta

Per recuperare e filtrare per valori meta, le loro chiavi meta devono essere aggiunte alla lista di autorizzazione.

Possiamo recuperare valori meta per i custom post, gli utenti, i commenti e le tassonomie (tag e categorie), interrogando i campi metaValue (per un singolo valore) e metaValues (per un array di valori) dal tipo corrispondente:

  • 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

Interrogare più valori meta contemporaneamente

Possiamo interrogare più voci meta come oggetto JSON, tramite il campo meta (per gli stessi tipi indicati sopra).

L'oggetto JSON contiene:

  • Chiave: la chiave meta
  • Valore: un elenco di valori (se il valore meta è uno scalare, viene recuperato come elenco di 1 elemento)

Interrogare le chiavi meta

Possiamo ottenere l'elenco di tutte le chiavi meta consentite nell'entità, tramite il campo metaKeys (per gli stessi tipi indicati sopra).

Questo campo è un elemento di dati "sensibile".

Filtrare per meta

I custom post, i commenti, gli utenti e le tassonomie (tag e categorie) possono anche essere filtrati per meta, utilizzando l'input metaQuery.

Questo input offre un miglioramento rispetto a come vengono forniti gli argomenti meta_query (alle funzioni get_posts, get_users, ecc.), nel senso che le validazioni di tipo sono applicate rigorosamente nello schema GraphQL, e vengono esposte solo le combinazioni che hanno senso.

Ciò viene realizzato utilizzando il campo input "oneof" compareBy, che offre 4 possibilità. A seconda dell'opzione scelta, possono essere utilizzati diversi operatori per il confronto:

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

Inoltre, quando si confronta per key, non è necessario fornire l'input value.

Possiamo passare più elementi sotto metaQuery, e decidere se eseguire un AND o un OR delle loro condizioni passando l'input relation sul primo elemento dell'elenco.