แก้ไข Superfly Menu
ไม่ทำงานหลังอัพเดต WordPress 7.0
วิธีแก้ไข SyntaxError ที่เกิดขึ้นเมื่อใช้ Superfly Menu 5.0.35 กับ WordPress เวอร์ชันใหม่ แก้ไขได้ 2 ไฟล์ ไม่ต้องรอ Developer
หลังจากอัพเดต WordPress เป็นเวอร์ชันใหม่ Superfly Menu 5.0.35 หยุดทำงานทันที เมื่อเปิด DevTools (F12) จะพบ error ใน Console:
(index):913:2108Superfly Menu 5.0.35 เป็น Plugin รุ่นเก่า (ปี 2020) ที่ไม่ได้รับการอัพเดตมานาน จึงเกิด Incompatibility กับ JavaScript ของ WordPress รุ่นใหม่
json_encode() ไม่ escape HTML ทำให้ JS String ขาดกลางPHP echo boolean false ออกมาเป็น String ว่าง แต่ JS ต้องการ keyword true/false — การใส่ quote ครอบทำให้ JS อ่านค่าผิด
JSON_HEX_TAG escape แท็ก HTML ให้ปลอดภัย และ JSON_UNESCAPED_UNICODE ทำให้ภาษาไทยใน Menu ไม่ทำให้ JS String ขาดกลาง
บันทึกไฟล์ทั้ง 2 ไฟล์ที่แก้ไข
ล้างแคชPlugin Cache / Server Cache
รีเฟรชหน้าเว็บกด Ctrl+Shift+R
เขียนโดย Jodbush Web Design
ทดสอบกับ Superfly Menu 5.0.35 + WordPress 7.0 (PHP 8.3.30)
หากมีคำถามเพิ่มเติม ติดต่อได้ที่ jodbush.com

