Wartości Meta
Aby pobierać i filtrować według wartości meta, klucze meta muszą zostać dodane do listy dozwolonych.
Możemy pobierać wartości meta dla custom posts, użytkowników, komentarzy i taksonomii (tagów i kategorii), odpytując pola metaValue (dla pojedynczej wartości) i metaValues (dla tablicy wartości) z odpowiedniego typu:
Post.metaValuePost.metaValuesGenericCustomPost.metaValueGenericCustomPost.metaValuesUser.metaValueUser.metaValuesComment.metaValueComment.metaValuesPostTag.metaValuePostTag.metaValuesPostCategory.metaValuePostCategory.metaValuesGenericTag.metaValueGenericTag.metaValuesGenericCategory.metaValueGenericCategory.metaValues
Odpytywanie wielu wartości meta jednocześnie
Możemy odpytywać wiele wpisów meta jako obiekt JSON, za pomocą pola meta (dla tych samych typów co powyżej).
Obiekt JSON zawiera:
- Klucz: klucz meta
- Wartość: lista wartości (jeśli wartość meta jest skalarem, jest pobierana jako lista z 1 elementem)
Odpytywanie kluczy meta
Możemy uzyskać listę wszystkich dozwolonych kluczy meta w encji, za pomocą pola metaKeys (dla tych samych typów co powyżej).
To pole jest elementem danych "wrażliwych".
Filtrowanie według meta
Custom posts, komentarze, użytkownicy i taksonomie (tagi i kategorie) mogą być również filtrowane według meta, przy użyciu inputu metaQuery.
Ten input oferuje ulepszenie w stosunku do sposobu przekazywania argumentów meta_query (do funkcji get_posts, get_users itd.), ponieważ walidacje typów są ściśle egzekwowane w schemacie GraphQL, a jedynie kombinacje, które mają sens, są udostępniane.
Osiąga się to za pomocą pola input "oneof" compareBy, które oferuje 4 możliwości. W zależności od wybranej opcji, różne operatory mogą być użyte do porównania:
Input compareBy | Możliwe operatory |
|---|---|
1. key | EXISTSNOT EXISTS |
2. numericValue | =!=>>=<\<= |
3. stringValue | =!=LIKENOT LIKEREGEXPNOT REGEXPRLIKE |
4. arrayValue | INNOT INBETWEENNOT BETWEEN |
Ponadto, przy porównywaniu według key, nie ma potrzeby podawania inputu value.
Możemy przekazać kilka elementów w metaQuery i zdecydować, czy wykonać AND czy OR ich warunków, przekazując input relation w pierwszym elemencie listy.