WPML
สถานะ
แก้ไขแล้ว
รายงานสำหรับ
Advanced Custom Fields Multilingual 2.1.2
แก้ไขใน
Advanced Custom Fields Multilingual 2.1.3
ปลั๊กอิน/ธีมที่เกี่ยวข้อง
Advanced Custom Fields (ACF)
แท็กหัวข้อ
ATE, Bug, Compatibility

ภาพรวมของปัญหา

หากคุณกำลังใช้ปลั๊กอิน Advanced Custom Fields สำหรับการลงทะเบียนประเภทโพสต์แบบกำหนดเองหรืออนุกรมวิธานที่กำหนดเอง คุณอาจพบข้อผิดพลาดร้ายแรงในสภาพแวดล้อมที่ใช้ PHP 8 หรือคำเตือนใน PHP 7 เมื่อคุณมีข้อมูลที่เสียหายจัดเก็บไว้สำหรับอ็อบเจ็กต์ใด ๆ เหล่านั้น:


PHP Fatal error:  Uncaught TypeError: array_walk(): Argument #1 ($array) must be of type array, null given in .../wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php:55

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

โปรดตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลไซต์ทั้งหมดของคุณก่อนดำเนินการต่อ

ตัวเลือกที่ 1


เมื่อปิดการใช้งาน Advanced Custom Fields Multilingual แล้ว ให้แก้ไขประเภทโพสต์หรืออนุกรมวิธานของ ACF ที่มีปัญหา และตั้งค่าที่ขาดหายไปสำหรับป้ายกำกับหรือ slug ของออบเจ็กต์ จากนั้นบันทึก แล้วเปิดใช้งาน Advanced Custom Fields Multilingual และทุกอย่างจะเรียบร้อย

ตัวเลือกที่ 2

  • เปิดไฟล์ …/wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php
  • ค้นหาบรรทัดที่ 53
  • แทนที่:
    array_walk( $objectArgs['labels'], function( &$value, $key ) use ( $translatedLabels ) {
    	$value = Obj::propOr( $value, $key, $translatedLabels );
    } );
  • ด้วย:
    $labels = Obj::propOr( [], 'labels', $objectArgs );
    array_walk( $labels, function( $value, $key ) use ( &$objectArgs, $translatedLabels ) {
    	$objectArgs['labels'][ $key ] = Obj::propOr( $value, $key, $translatedLabels );
    } );

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