Meta Değerleri
Meta değerlerini almak ve filtrelemek için, meta anahtarlarının izin listesine eklenmesi gerekir.
Özel gönderiler, kullanıcılar, yorumlar ve taksonomiler (etiketler ve kategoriler) için meta değerlerini, karşılık gelen türden metaValue (tek bir değer için) ve metaValues (değerler dizisi için) alanlarını sorgulayarak alabiliriz:
Post.metaValuePost.metaValuesGenericCustomPost.metaValueGenericCustomPost.metaValuesUser.metaValueUser.metaValuesComment.metaValueComment.metaValuesPostTag.metaValuePostTag.metaValuesPostCategory.metaValuePostCategory.metaValuesGenericTag.metaValueGenericTag.metaValuesGenericCategory.metaValueGenericCategory.metaValues
Birden fazla meta değerini aynı anda sorgulama
Birden fazla meta girişini, meta alanı aracılığıyla (yukarıdakiyle aynı türler için) bir JSON nesnesi olarak sorgulayabiliriz.
JSON nesnesi şunları içerir:
- Anahtar: meta anahtarı
- Değer: değerlerin listesi (meta değeri bir skalersa, 1 elemanlı bir liste olarak alınır)
Meta anahtarlarını sorgulama
metaKeys alanı aracılığıyla (yukarıdakiyle aynı türler için) varlıktaki tüm izin verilen meta anahtarlarının listesini alabiliriz.
Bu alan bir "hassas" veri öğesidir.
Meta'ya göre filtreleme
Özel gönderiler, yorumlar, kullanıcılar ve taksonomiler (etiketler ve kategoriler), metaQuery girdisini kullanarak meta'ya göre de filtrelenebilir.
Bu girdi, meta_query argümanlarının nasıl sağlandığına (get_posts, get_users vb. işlevlerine) kıyasla bir iyileştirme sunar; GraphQL şemasında tür doğrulamaları sıkı biçimde uygulanır ve yalnızca mantıklı olan kombinasyonlar ortaya çıkarılır.
Bu, 4 olasılık sunan "oneof" girdi alanı compareBy kullanılarak gerçekleştirilir. Seçilen seçeneğe bağlı olarak, karşılaştırma için farklı operatörler kullanılabilir:
compareBy girdisi | Olası operatörler |
|---|---|
1. key | EXISTSNOT EXISTS |
2. numericValue | =!=>>=<\<= |
3. stringValue | =!=LIKENOT LIKEREGEXPNOT REGEXPRLIKE |
4. arrayValue | INNOT INBETWEENNOT BETWEEN |
Ayrıca key ile karşılaştırma yaparken value girdisini sağlamaya gerek yoktur.
metaQuery altında birkaç öğe geçirebilir ve listedeki ilk öğede relation girdisini geçirerek koşullarının AND mi yoksa OR mu olacağına karar verebiliriz.