- 상태
- 해결됨
- 보고된 제품
- 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 글 유형 또는 분류 체계를 편집하여 레이블 또는 객체 슬러그의 누락된 값을 설정하고 저장하세요. 그런 다음 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 ); } );