- 状态
- 已解决
- 报告针对
- Advanced Custom Fields Multilingual 2.0.5
- 解决于
- Advanced Custom Fields Multilingual 2.2.0
- 相关插件/主题
- Advanced Custom Fields (ACF)
- 主题标签
- Compatibility
问题概述
在某些情况下,Advanced Custom Fields Multilingual (ACFML) 插件在使用 ACF 字段时可能会遇到 PHP 警告:
Attempt to read property "post_content" on null in plugins .../acfml/classes/class-wpml-acf-repeater-shuffle.php on line 249
临时解决方法
在继续操作之前,请确保对您的站点进行完整备份。
- 打开 …/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; }