סקירת התקלה
בתרחישים מסוימים, התוסף 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; }