Meta-Werte
Um Meta-Werte abzurufen und danach zu filtern, müssen die jeweiligen Meta-Keys zur Allowlist hinzugefügt werden.
Du kannst Meta-Werte für Custom Posts, Benutzer, Kommentare und Taxonomien (Tags und Kategorien) abrufen, indem du die Felder metaValue (für einen einzelnen Wert) und metaValues (für ein Array von Werten) des entsprechenden Typs abfragst:
Post.metaValuePost.metaValuesGenericCustomPost.metaValueGenericCustomPost.metaValuesUser.metaValueUser.metaValuesComment.metaValueComment.metaValuesPostTag.metaValuePostTag.metaValuesPostCategory.metaValuePostCategory.metaValuesGenericTag.metaValueGenericTag.metaValuesGenericCategory.metaValueGenericCategory.metaValues
Mehrere Meta-Werte gleichzeitig abfragen
Du kannst mehrere Meta-Einträge als JSON-Objekt abfragen, über das Feld meta (für dieselben Typen wie oben).
Das JSON-Objekt enthält:
- Key: der Meta-Key
- Value: eine Liste von Werten (wenn der Meta-Wert ein Skalar ist, wird er als Liste mit 1 Element abgerufen)
Meta-Keys abfragen
Du kannst die Liste aller erlaubten Meta-Keys in der Entität über das Feld metaKeys abrufen (für dieselben Typen wie oben).
Dieses Feld ist ein "sensibles" Datenelement.
Nach Meta filtern
Custom Posts, Kommentare, Benutzer und Taxonomien (Tags und Kategorien) können auch nach Meta gefiltert werden, mithilfe des Inputs metaQuery.
Dieser Input bietet eine Verbesserung gegenüber der Art, wie die meta_query-Argumente übergeben werden (an die Funktionen get_posts, get_users usw.), da Typvalidierungen im GraphQL-Schema streng durchgesetzt werden und nur die sinnvollen Kombinationen verfügbar sind.
Dies wird durch das "oneof"-Eingabefeld compareBy erreicht, das 4 Möglichkeiten bietet. Je nach gewählter Option können verschiedene Operatoren für den Vergleich verwendet werden:
Input compareBy | Mögliche Operatoren |
|---|---|
1. key | EXISTSNOT EXISTS |
2. numericValue | =!=>>=<\<= |
3. stringValue | =!=LIKENOT LIKEREGEXPNOT REGEXPRLIKE |
4. arrayValue | INNOT INBETWEENNOT BETWEEN |
Wenn du nach key vergleichst, musst du den Input value nicht angeben.
Du kannst mehrere Einträge unter metaQuery übergeben und entscheiden, ob die Bedingungen per AND oder OR verknüpft werden sollen, indem du den Input relation beim ersten Element der Liste angibst.