ภาพรวมของปัญหา
ในบางสถานการณ์ ปลั๊กอิน Advanced Custom Fields Multilingual (ACFML) อาจพบคำเตือน PHP เมื่อใช้งานฟิลด์ ACF:
Attempt to read property "post_content" on null in plugins .../acfml/classes/class-wpml-acf-repeater-shuffle.php on line 249
วิธีแก้ปัญหาชั่วคราว
ปัญหานี้ได้รับการแก้ไขแล้วใน Advanced Custom Fields Multilingual 2.2.0 การอัปเดตจะแก้ปัญหานี้บนไซต์ของคุณ ดังนั้นคุณจึงต้องใช้วิธีแก้ปัญหาชั่วคราวนี้เฉพาะเมื่อคุณยังไม่สามารถอัปเดตได้
โปรดตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลทั้งหมดของไซต์ของคุณก่อนดำเนินการต่อ
- เปิดไฟล์ …/acfml/classes/class-wpml-acf-repeater-shuffle.php
- ค้นหาบรรทัดที่ 244
- แทนที่:
private function isChildOfRepeaterField( $key, $postId ) { $acfFieldObject = get_field_object( $key, $postId ); if ( isset( $acfFieldObject['parent'] ) && $acfFieldObject['parent'] > 0 ) { $fieldParent = get_post( $acfFieldObject['parent'] ); $fieldParentContent = maybe_unserialize( $fieldParent->post_content ); if ( isset( $fieldParentContent['type'] ) && 'repeater' === $fieldParentContent['type'] ) { return true; } } return false; } - ด้วย:
private function isChildOfRepeaterField( $key, $postId ) { $acfFieldObject = get_field_object( $key, $postId ); if ( isset( $acfFieldObject['parent'] ) ) { if ( is_numeric( $acfFieldObject['parent'] ) && $acfFieldObject['parent'] > 0 ) { $fieldParent = get_post( $acfFieldObject['parent'], $postId ); if ( $fieldParent ) { $fieldParentContent = maybe_unserialize( $fieldParent->post_content ); if ( isset( $fieldParentContent['type'] ) && 'repeater' === $fieldParentContent['type'] ) { return true; } } } elseif ( is_string( $acfFieldObject['parent'] ) ) { $fieldParent = get_field_object( $acfFieldObject['parent'], $postId ); if ( isset( $fieldParent['type'] ) && 'repeater' === $fieldParent['type'] ) { return true; } } } return false; }