การกำหนด Entries ที่อนุญาตใน Settings
ด้วยโมดูล Schema Settings คุณสามารถดึงข้อมูลการตั้งค่าของเว็บไซต์ (ที่เก็บอยู่ในตาราง wp_options) ได้ โดยการ query ฟิลด์ optionValue, optionValues และ optionObjectValue
ฟิลด์เหล่านี้มี signature ที่แตกต่างกัน:
optionValue: AnyBuiltInScalaroptionValues: [AnyBuiltInScalar]optionObjectValue: JSONObject
ตัวอย่างเช่น query นี้ดึง URL ของเว็บไซต์:
{
homeURL: optionValue(name: "home")
}ด้วยเหตุผลด้านความปลอดภัย ตัวเลือกที่สามารถ query ได้จะต้องถูกกำหนดค่าอย่างชัดเจน
การตอบสนองของ Settings
เมื่อดำเนินการฟิลด์ "optionValue" ใดก็ตาม หากการเข้าถึงชื่อ option นั้นไม่ได้รับอนุญาตใน Settings query จะคืนค่าเป็น error
ตัวอย่างเช่น การดำเนินการ query นี้:
{
optionValue(name: "nonExistentOption")
}จะคืนค่า:
{
"errors": [
{
"message": "There is no option with name 'nonExistentOption'",
"extensions": {
"type": "Root",
"id": "root",
"field": "optionValue(name:\"nonExistentOption\")"
}
}
],
"data": {
"option": null
}
}ในกรณีอื่น การตอบสนองจะเป็นค่าของการตั้งค่าที่มีชื่อที่ระบุ
การกำหนดค่า Options ที่อนุญาต
เราต้องกำหนดรายการชื่อ option ที่สามารถ query ได้
แต่ละ entry สามารถเป็น:
- Regex (regular expression) หากล้อมรอบด้วย
/หรือ#หรือ - ชื่อ option แบบเต็ม ในกรณีอื่น
ตัวอย่างเช่น entries ต่อไปนี้ทั้งหมดตรงกับ meta key "siteurl":
siteurl/site.*/#site([a-zA-Z]*)#
มี 2 สถานที่ที่สามารถกำหนดค่านี้ได้ เรียงตามลำดับความสำคัญ:
- แบบกำหนดเอง: ใน Schema Configuration ที่เกี่ยวข้อง
- ทั่วไป: ในหน้า Settings
ใน Schema Configuration ที่ใช้กับ endpoint ให้เลือกตัวเลือก "Use custom configuration" แล้วป้อน entries ที่ต้องการ:

หรือจะใช้ entries ที่กำหนดใน tab "Settings" จาก Settings:

มี 2 พฤติกรรม คือ "Allow access" และ "Deny access":
- Allow access: เฉพาะ entries ที่กำหนดค่าไว้เท่านั้นที่เข้าถึงได้ ส่วน entries อื่นเข้าถึงไม่ได้
- Deny access: entries ที่กำหนดค่าไว้ไม่สามารถเข้าถึงได้ แต่ entries อื่นทั้งหมดเข้าถึงได้

Options เริ่มต้น
เมื่อติดตั้ง plugin แล้ว options ต่อไปนี้จะถูกกำหนดไว้ล่วงหน้าให้เข้าถึงได้:
"siteurl""home""blogname""blogdescription""WPLANG""posts_per_page""date_format""time_format""blog_charset"