- สถานะ
- แก้ไขแล้ว
- แก้ไขใน
- WPML 4.9
- แท็กหัวข้อ
- Bug
ภาพรวมของปัญหา
ผู้ใช้บางรายตั้งค่าไซต์เพื่อบล็อกคำขอ REST API ที่ไม่ผ่านการยืนยันตัวตน
ในกรณีนี้ คุณอาจพบว่า WPML รายงานว่าไซต์ไม่ตรงตามข้อกำหนดขั้นต่ำ เนื่องจากไม่สามารถเข้าถึงปลายทาง REST API สำหรับการทดสอบได้ และแบนเนอร์คำเตือนในหน้า WPML > ฝ่ายสนับสนุน และในเมนูแบบเลื่อนลงบนแถบเครื่องมือหน้าจัดการเว็บไซต์ของ WPML จะไม่สามารถปิดได้
วิธีแก้ปัญหาชั่วคราว
จนกว่าปัญหานี้จะได้รับการแก้ไข สามารถลบประกาศนี้ออกได้โดยแก้ไขไฟล์ sitepress-multilingual-cms/vendor/wpml/wpml/src/Infrastructure/WordPress/SharedKernel/Server/Application/WordPressRestApiStatus.php
ค้นหาบรรทัดเหล่านี้ (จากบรรทัดที่ 70):
// Add basic authentication if present
if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] ) ) {
$args['headers']['Authorization'] =
'Basic ' . base64_encode( $_SERVER['PHP_AUTH_USER'] . ':' . $_SERVER['PHP_AUTH_PW'] );
}
จากนั้นเพิ่ม 2 บรรทัดนี้ต่อท้ายทันที:
// Add authentication from cookies
$args['cookies'] = $_COOKIE;
สิ่งนี้จะเพิ่มการตรวจสอบสิทธิ์ที่จำเป็นลงในคำขอซึ่งทดสอบ REST API