การตั้งค่าปลั๊กอิน
การตั้งค่าปลั๊กอินการกำหนดรายการอนุญาต/ปฏิเสธสำหรับค่าเมตา

การกำหนดรายการอนุญาต/ปฏิเสธสำหรับค่าเมตา

เราสามารถดึงค่าเมตาสำหรับโพสต์แบบกำหนดเอง ผู้ใช้ คอมเมนต์ และแท็กโซโนมี (แท็กและหมวดหมู่) ได้โดยการ queries ฟิลด์ metaValue (สำหรับค่าเดียว) และ metaValues (สำหรับอาร์เรย์ของค่า) จากประเภทที่เกี่ยวข้อง:

  • 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

นอกจากนี้ เรายังสามารถกรองผลลัพธ์สำหรับโพสต์แบบกำหนดเอง ผู้ใช้ คอมเมนต์ และแท็กโซโนมี (แท็กและหมวดหมู่) ตามเมตาได้ ผ่านฟิลด์อินพุต metaQuery

ทั้งในการ queries และการกรอง ค่าเมตาอาจเป็นสาธารณะหรือส่วนตัว ตัวอย่างเช่น เมตาของผู้ใช้มีรายการ wp_capabilities ซึ่งเป็นส่วนตัว ในขณะที่ description เป็นสาธารณะ และ last_name อาจเป็นสาธารณะหรือส่วนตัวขึ้นอยู่กับแอปพลิเคชัน

ปลั๊กอิน Gato GraphQL ไม่ได้กำหนดว่าเมตาคีย์ใดเป็นสาธารณะและใดเป็นส่วนตัว ต้องมีการตั้งค่าอย่างชัดเจน โดยค่าเริ่มต้น รายการเมตาคีย์ที่อนุญาตจะว่างเปล่า

การตอบสนองของค่าเมตา

เมื่อ queries เมตาคีย์ที่ไม่ได้รับอนุญาตในหน้าการตั้งค่าที่เกี่ยวข้อง queries จะส่งคืนข้อผิดพลาด

ตัวอย่างเช่น การรัน queries นี้:

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

จะได้รับ:

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

หากเมตาคีย์ไม่มีอยู่สำหรับอ็อบเจกต์ที่ queries หรือค่าว่างเปล่า การตอบสนองจะเป็น null มิเช่นนั้น การตอบสนองจะเป็นค่าเมตา

การตั้งค่าเมตาคีย์ที่อนุญาต

นี่คือคำอธิบายสำหรับโมดูล "Custom Post Meta" สำหรับโมดูล Users, Comments และ Taxonomies ขั้นตอนจะคล้ายกัน

เราต้องตั้งค่ารายการเมตาคีย์ที่สามารถ queries ได้ผ่านฟิลด์เมตา

แต่ละรายการอาจเป็น:

  • นิพจน์ทั่วไป (regex) หากล้อมรอบด้วย / หรือ # หรือ
  • เมตาคีย์แบบเต็ม ในกรณีอื่น

ตัวอย่างเช่น รายการเหล่านี้ตรงกับเมตาคีย์ "_edit_last":

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

มีสถานที่ 2 แห่งที่สามารถทำการตั้งค่านี้ได้ เรียงตามลำดับความสำคัญ:

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

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

การกำหนดรายการใน Schema Configuration

มิเช่นนั้น รายการที่กำหนดในแท็บ "Schema Custom Post Meta" จากการตั้งค่าจะถูกใช้:

การกำหนดรายการในการตั้งค่า
การกำหนดรายการในการตั้งค่า

มีพฤติกรรม 2 แบบ คือ "Allow access" และ "Deny access":

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