WPML
상태
해결됨
보고된 제품
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 );
    } );

알려진 모든 문제 →