ใน WordPress 4.7 จะมีการเปิด WP Rest API เป็นค่าพื้นฐานโดยที่เราไม่ต้องทำการติดตั้ง Plugin เพื่อใช้งานอีกแล้ว แต่นั่นก็ทำให้เกิดปัญหาจากส่วนนี้เช่นกัน สำหรับคนที่เป็นคนใช้ทั่วไป ที่น่าจะไม่ได้ใช้ส่วนนี้แน่ๆ
ปัญหาที่เกิดก็คือถ้าเข้าไปที่
http://www.yourdomain.com/wp-json/wp/v2/posts
จะพบข้อมูลเกี่ยวกับโพสต์ทั้งหมดของเราในรูปแบบ json พ่นพรวดออกมาง่ายๆ เลย
ทำให้ง่ายต่อการก๊อบปี้ยิ่งนัก…
ทีนี้บุคคลทั่วไปเคนก็คิดว่าน่าจะไม่ต้องเปิดตรงส่วนนี้เพื่อใช้งานหรอก เพราะน่าจะไม่ได้ใช้ และวิธีการปิดที่ง่ายที่สุดก็คือ ติดตั้งปลั๊กอิน Disable REST API
แล้วก็มีอีกวิธีคือการใส่โค้ดเข้าไปที่ไฟล์ functions.php ในธีมที่เราใช้งานอยู่ แต่เคนลองแล้วมันไม่ยอมปิดกั้นแฮะ ไม่เกี่ยวกับแคชด้วยเพราะลองในโหมดไม่ระบุตัวตนก็ยังพ่นข้อมูลออกมาอยู่
ปลั๊กอิน Disable REST API
พอติดตั้งแล้วก็ไม่ต้องทำอะไรแค่เปิดให้มันทำงานแล้วลองเข้า http://www.yourdomain.com/wp-json/wp/v2/posts ก็จะพบว่าเป็นโค้ดสั้นๆ บรรทัดเดียว เหลือเพียงบอกว่า ไม่สามารถดูข้อมูล Rest API ได้ เฉพาะผู้ที่เข้าสู่ระบบแล้วเท่านั้นถึงจะสามารถดูได้ โค้ดหน้าตาแบบนี้
{"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}}
ก็เป็นอันเรียบร้อย จริงๆ มันก็เป็นส่วนที่เปิดให้ดูได้แหละ แต่ถ้าไม่ได้ใช้ก็ปิดไว้ก่อนก็ดีครับ
ขอบคุณข้อมูลจากกรุ๊ป WordPress Alliance – พูดคุย ปรึกษา แนะนำ WP
ขอบคุณ Warat Wongmaneekit ที่เป็นผู้แจ้งข้อมูลในส่วนนี้ในกรุ๊ป
ขอบคุณแนวทางแก้ไขจากคุณ Jiraz Pipatwasin และเว็บที่ทางคุณ Jiraz เป็นผู้นำมาโพสต์เพื่อใช้อ้างอิง How to Use WP REST API and Disable JSON REST API in WordPress