Meta-waarden
Om meta-waarden op te halen en te filteren, moeten de meta-sleutels worden toegevoegd aan de allowlist.
Je kunt meta-waarden ophalen voor custom posts, gebruikers, reacties en taxonomieën (tags en categorieën) door de velden metaValue (voor een enkele waarde) en metaValues (voor een array van waarden) te bevragen vanuit het bijbehorende type:
Post.metaValuePost.metaValuesGenericCustomPost.metaValueGenericCustomPost.metaValuesUser.metaValueUser.metaValuesComment.metaValueComment.metaValuesPostTag.metaValuePostTag.metaValuesPostCategory.metaValuePostCategory.metaValuesGenericTag.metaValueGenericTag.metaValuesGenericCategory.metaValueGenericCategory.metaValues
Meerdere meta-waarden tegelijk bevragen
Je kunt meerdere meta-vermeldingen als een JSON-object bevragen via het veld meta (voor dezelfde types als hierboven).
Het JSON-object bevat:
- Sleutel: de meta-sleutel
- Waarde: een lijst met waarden (als de meta-waarde een scalar is, wordt deze opgehaald als een lijst met 1 element)
Meta-sleutels bevragen
Je kunt de lijst met alle toegestane meta-sleutels in de entiteit ophalen via het veld metaKeys (voor dezelfde types als hierboven).
Dit veld is een "gevoelig" gegevenselement.
Filteren op meta
Custom posts, reacties, gebruikers en taxonomieën (tags en categorieën) kunnen ook worden gefilterd op meta, met behulp van de metaQuery-input.
Deze input biedt een verbetering ten opzichte van hoe de meta_query-argumenten worden doorgegeven (aan de functies get_posts, get_users, enz.), doordat typevalidaties strikt worden afgedwongen in het GraphQL-schema en alleen de combinaties die zinvol zijn worden blootgesteld.
Dit wordt bereikt door gebruik te maken van het "oneof" inputveld compareBy, dat 4 mogelijkheden biedt. Afhankelijk van de gekozen optie kunnen verschillende operators worden gebruikt voor de vergelijking:
compareBy-input | Mogelijke operators |
|---|---|
1. key | EXISTSNOT EXISTS |
2. numericValue | =!=>>=<\<= |
3. stringValue | =!=LIKENOT LIKEREGEXPNOT REGEXPRLIKE |
4. arrayValue | INNOT INBETWEENNOT BETWEEN |
Bovendien hoef je bij vergelijking via key geen value-input op te geven.
Je kunt meerdere items doorgeven onder metaQuery en bepalen of je een AND of OR van hun condities uitvoert door de relation-input op te geven bij het eerste item in de lijst.