WPML
สถานะ
แก้ไขแล้ว
แก้ไขใน
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

ปัญหาที่ทราบแล้วทั้งหมด →