Nilai Meta
Untuk mengambil dan memfilter berdasarkan nilai meta, kunci meta harus ditambahkan ke daftar yang diizinkan.
Kita dapat mengambil nilai meta untuk custom post, pengguna, komentar, dan taksonomi (tag dan kategori), dengan melakukan query pada field metaValue (untuk satu nilai) dan metaValues (untuk array nilai) dari tipe yang sesuai:
Post.metaValuePost.metaValuesGenericCustomPost.metaValueGenericCustomPost.metaValuesUser.metaValueUser.metaValuesComment.metaValueComment.metaValuesPostTag.metaValuePostTag.metaValuesPostCategory.metaValuePostCategory.metaValuesGenericTag.metaValueGenericTag.metaValuesGenericCategory.metaValueGenericCategory.metaValues
Melakukan query beberapa nilai meta sekaligus
Kita dapat melakukan query beberapa entri meta sekaligus sebagai objek JSON, melalui field meta (untuk tipe yang sama seperti di atas).
Objek JSON memiliki:
- Kunci: kunci meta
- Nilai: daftar nilai (jika nilai meta adalah skalar, nilai tersebut diambil sebagai daftar dengan 1 elemen)
Melakukan query kunci meta
Kita dapat mendapatkan daftar semua kunci meta yang diizinkan dalam entitas, melalui field metaKeys (untuk tipe yang sama seperti di atas).
Field ini adalah elemen data "sensitif".
Memfilter berdasarkan meta
Custom post, komentar, pengguna, dan taksonomi (tag dan kategori) juga dapat difilter berdasarkan meta, menggunakan input metaQuery.
Input ini menawarkan peningkatan dibandingkan cara argumen meta_query diberikan (pada fungsi get_posts, get_users, dll), di mana validasi tipe diterapkan secara ketat dalam skema GraphQL, dan hanya kombinasi yang masuk akal yang diekspos.
Hal ini dicapai dengan menggunakan input field "oneof" compareBy, yang menawarkan 4 kemungkinan. Bergantung pada opsi yang dipilih, operator yang berbeda dapat digunakan untuk perbandingan:
Input compareBy | Operator yang tersedia |
|---|---|
1. key | EXISTSNOT EXISTS |
2. numericValue | =!=>>=<\<= |
3. stringValue | =!=LIKENOT LIKEREGEXPNOT REGEXPRLIKE |
4. arrayValue | INNOT INBETWEENNOT BETWEEN |
Selain itu, saat membandingkan berdasarkan key, tidak perlu memberikan input value.
Kita dapat memasukkan beberapa item di bawah metaQuery, dan memutuskan apakah akan melakukan AND atau OR dari kondisi-kondisinya dengan memasukkan input relation pada item pertama dalam daftar.