Praca z
Praca zWartości Meta

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.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

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 compareByMożliwe operatory
1. keyEXISTS
NOT EXISTS
2. numericValue=
!=
>
>=
<
\<=
3. stringValue=
!=
LIKE
NOT LIKE
REGEXP
NOT REGEXP
RLIKE
4. arrayValueIN
NOT IN
BETWEEN
NOT 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.