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