ปัญหาที่พบบ่อย
ปัญหาที่พบบ่อยPolylang ทำงานผิดปกติ

Polylang ทำงานผิดปกติ

เมื่อใช้งาน Polylang extension และพบปัญหาดังต่อไปนี้ขณะดึงข้อมูลผ่าน GraphQL จาก public endpoint:

  • Polylang ไม่สามารถตรวจจับภาษาปัจจุบันสำหรับ GraphQL requests ได้อย่างถูกต้อง
  • เนื้อหาที่เฉพาะเจาะจงตามภาษาไม่ถูกกรองอย่างถูกต้อง
  • คุณได้รับเนื้อหาในภาษาที่ผิด หรือไม่ได้รับเนื้อหาเลย

...และคุณได้ดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ใน Gato GraphQL:

  • อัปเดต path ของ GraphQL Single Endpoint
  • อัปเดต base slug ของ Custom Endpoints หรือ Persisted Queries
  • ปิดใช้งาน endpoint ใดๆ (โดยการปิดใช้งาน module ที่เกี่ยวข้อง)

...คุณต้องนำการแก้ไขเดียวกันนั้นไปใช้ผ่าน hook เพื่อหลีกเลี่ยงความขัดแย้ง

เหตุใดจึงเกิดปัญหานี้

มีความขัดแย้งด้านเวลาระหว่างการเริ่มต้นของ Polylang และการตั้งค่า service container ของ Gato GraphQL

Polylang ตั้งค่า pll_model และ pll_context filters ในระหว่างกระบวนการเริ่มต้นใช้งาน เนื่องจาก Gato GraphQL ยังไม่ได้เริ่มต้น จึงไม่สามารถดึง endpoint paths ที่ถูกต้องจากฐานข้อมูลได้ เพื่อตรวจสอบว่า request มาจาก GraphQL endpoint หรือไม่ และเพื่อแทนที่ model และ context ด้วยค่าที่ถูกต้อง (ได้แก่ PLL_Admin_Model และ PLL_Admin ตามลำดับ)

วิธีแก้ปัญหาชั่วคราว

เมื่อ Polylang ตั้งค่า pll_model และ pll_context filters, Gato GraphQL จะสมมติว่าเป็น default paths สำหรับ GraphQL endpoints

ดังนั้น หากคุณแก้ไข path ของ public endpoint ใดๆ ผ่านการตั้งค่าของ plugin คุณต้องนำการแก้ไขเดียวกันนั้นไปใช้ผ่าน hook ด้วย

อ่านคู่มือ การจำลองการอัปเดต GraphQL endpoint path ผ่าน hooks เพื่อดูวิธีแก้ปัญหา