การตั้งค่าปลั๊กอิน
การตั้งค่าปลั๊กอินการกำหนด Entries ที่อนุญาตใน Settings

การกำหนด Entries ที่อนุญาตใน Settings

ด้วยโมดูล Schema Settings คุณสามารถดึงข้อมูลการตั้งค่าของเว็บไซต์ (ที่เก็บอยู่ในตาราง wp_options) ได้ โดยการ query ฟิลด์ optionValue, optionValues และ optionObjectValue

ฟิลด์เหล่านี้มี signature ที่แตกต่างกัน:

  • optionValue: AnyBuiltInScalar
  • optionValues: [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 สถานที่ที่สามารถกำหนดค่านี้ได้ เรียงตามลำดับความสำคัญ:

  1. แบบกำหนดเอง: ใน Schema Configuration ที่เกี่ยวข้อง
  2. ทั่วไป: ในหน้า Settings

ใน Schema Configuration ที่ใช้กับ endpoint ให้เลือกตัวเลือก "Use custom configuration" แล้วป้อน entries ที่ต้องการ:

การกำหนด entries สำหรับ Schema Configuration

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

การกำหนด entries ใน Settings
การกำหนด entries ใน 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"