Mendefinisikan entri yang diizinkan untuk Settings
Dengan modul Schema Settings, Anda dapat mengambil pengaturan dari situs (yang tersimpan di tabel wp_options), dengan melakukan query pada field optionValue, optionValues, dan optionObjectValue.
Field-field ini memiliki tanda tangan yang berbeda:
optionValue: AnyBuiltInScalaroptionValues: [AnyBuiltInScalar]optionObjectValue: JSONObject
Sebagai contoh, query ini mengambil URL situs:
{
homeURL: optionValue(name: "home")
}Demi alasan keamanan, opsi mana yang dapat di-query harus dikonfigurasi secara eksplisit.
Respons Settings
Saat mengeksekusi field "optionValue" apa pun, jika akses ke nama opsi tidak diizinkan dalam Settings, query akan mengembalikan error.
Sebagai contoh, mengeksekusi query ini:
{
optionValue(name: "nonExistentOption")
}Mengembalikan:
{
"errors": [
{
"message": "There is no option with name 'nonExistentOption'",
"extensions": {
"type": "Root",
"id": "root",
"field": "optionValue(name:\"nonExistentOption\")"
}
}
],
"data": {
"option": null
}
}Jika tidak, responsnya adalah nilai pengaturan dengan nama yang ditentukan.
Mengonfigurasi opsi yang diizinkan
Kita harus mengonfigurasi daftar nama opsi yang dapat di-query.
Setiap entri dapat berupa:
- Sebuah regex (regular expression), jika dikelilingi oleh
/atau#, atau - Nama opsi lengkap, jika tidak
Sebagai contoh, salah satu dari entri berikut cocok dengan meta key "siteurl":
siteurl/site.*/#site([a-zA-Z]*)#
Ada 2 tempat di mana konfigurasi ini dapat dilakukan, berdasarkan urutan prioritas:
- Kustom: Pada Schema Configuration yang sesuai
- Umum: Pada halaman Settings
Pada Schema Configuration yang diterapkan ke endpoint, pilih opsi "Use custom configuration" lalu masukkan entri yang diinginkan:

Jika tidak, entri yang didefinisikan di tab "Settings" dari Settings akan digunakan:

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

Opsi default
Saat plugin diinstal, opsi-opsi berikut sudah didefinisikan sebelumnya untuk dapat diakses:
"siteurl""home""blogname""blogdescription""WPLANG""posts_per_page""date_format""time_format""blog_charset"