WPML

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

ในบางสถานการณ์ ปลั๊กอิน 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;
    }

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

ยังคงพบปัญหานี้อยู่หรือไม่

หากการอัปเดตไม่สามารถแก้ไขปัญหานี้ได้ ส่งคำถามถึงฝ่ายสนับสนุน และเราจะตรวจสอบร่วมกับคุณ