WPML
Status
Resolvido
Relatado para
Advanced Custom Fields Multilingual 2.1.2
Resolvido em
Advanced Custom Fields Multilingual 2.1.3
Plugin/tema relacionado
Advanced Custom Fields (ACF)
Tags de tópico
ATE, Bug, Compatibility

Visão geral do problema

Se você estiver usando o plugin Advanced Custom Fields para registrar tipos de post personalizados ou taxonomias personalizadas, você pode encontrar um erro fatal em ambientes que usam o PHP 8 ou avisos no PHP 7, quando tiver dados corrompidos armazenados para qualquer um desses objetos:


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

Solução alternativa

Certifique-se de ter um backup completo do seu site antes de prosseguir.

Opção 1


Com o Advanced Custom Fields Multilingual desativado, edite o tipo de post ou taxonomia problemático do ACF e defina os valores ausentes para os rótulos ou para o slug do objeto, e salve. Em seguida, ative o Advanced Custom Fields Multilingual e tudo estará resolvido.

Opção 2

  • Abra o arquivo …/wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php.
  • Procure a linha 53.
  • Substitua:
    array_walk( $objectArgs['labels'], function( &$value, $key ) use ( $translatedLabels ) {
    	$value = Obj::propOr( $value, $key, $translatedLabels );
    } );
  • Por:
    $labels = Obj::propOr( [], 'labels', $objectArgs );
    array_walk( $labels, function( $value, $key ) use ( &$objectArgs, $translatedLabels ) {
    	$objectArgs['labels'][ $key ] = Obj::propOr( $value, $key, $translatedLabels );
    } );

Todos os problemas conhecidos →