Mengonfigurasi plugin
Mengonfigurasi pluginMendefinisikan daftar izin/tolak untuk nilai meta

Mendefinisikan daftar izin/tolak untuk nilai meta

Kita dapat mengambil nilai meta untuk custom post, pengguna, komentar, dan taksonomi (tag dan kategori), dengan melakukan query pada field metaValue (untuk nilai tunggal) dan metaValues (untuk array nilai) dari tipe yang sesuai:

  • 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

Kita juga dapat memfilter hasil untuk custom post, pengguna, komentar, dan taksonomi (tag dan kategori) berdasarkan meta, melalui field input metaQuery.

Baik untuk query maupun pemfilteran, nilai meta dapat bersifat publik atau privat. Misalnya, meta pengguna mencakup entri wp_capabilities, yang bersifat privat, sedangkan description bersifat publik. Kemudian ada last_name, yang bisa bersifat publik atau privat tergantung pada aplikasinya.

Plugin Gato GraphQL tidak menentukan kunci meta mana yang publik dan mana yang privat; hal ini harus dikonfigurasi secara eksplisit. Secara default, daftar kunci meta yang diizinkan kosong.

Respons nilai meta

Saat melakukan query pada kunci meta yang aksesnya tidak diizinkan di halaman Settings yang sesuai, maka query akan mengembalikan error.

Misalnya, menjalankan query ini:

{
  post(by: { id: 1 }) {
    id
    metaValue(key: "nothingHere")
  }
}

Menghasilkan:

{
  "errors": [
    {
      "message": "There is no meta with key 'nothingHere'",
      "extensions": {
        "type": "Post",
        "id": 1,
        "field": "metaValue(key:\"nothingHere\")"
      }
    }
  ],
  "data": {
    "post": {
      "id": 1,
      "metaValue": null
    }
  }
}

Jika kunci meta tidak ada untuk objek yang di-query, atau nilainya kosong, responsnya adalah null. Jika tidak, responsnya adalah nilai meta tersebut.

Mengonfigurasi kunci meta yang diizinkan

Ini adalah deskripsi untuk modul "Custom Post Meta". Untuk modul Users, Comments, dan Taxonomies, prosedurnya serupa.

Kita harus mengonfigurasi daftar kunci meta yang dapat di-query melalui field meta.

Setiap entri dapat berupa:

  • Sebuah regex (ekspresi reguler), jika dikelilingi oleh / atau #, atau
  • Kunci meta lengkap, selain itu

Misalnya, salah satu dari entri berikut cocok dengan kunci meta "_edit_last":

  • _edit_last
  • /_edit_.*/
  • #_edit_([a-zA-Z]*)#

Ada 2 tempat di mana konfigurasi ini dapat dilakukan, berurutan berdasarkan prioritas:

  1. Kustom: Dalam Schema Configuration yang sesuai
  2. Umum: Di halaman Settings

Dalam Schema Configuration yang diterapkan pada endpoint, pilih opsi "Use custom configuration" lalu masukkan entri yang diinginkan:

Mendefinisikan entri dalam Schema Configuration

Jika tidak, entri yang didefinisikan dalam tab "Schema Custom Post Meta" dari Settings akan digunakan:

Mendefinisikan entri dalam Settings
Mendefinisikan entri dalam Settings

Ada 2 perilaku, "Allow access" dan "Deny access":

  • Allow access: hanya entri yang dikonfigurasi yang dapat diakses, tidak ada yang lain
  • Deny access: entri yang dikonfigurasi tidak dapat diakses, semua entri lainnya dapat diakses
Mendefinisikan perilaku akses
Mendefinisikan perilaku akses