WPML
Estado
Resuelto
Notificado para
Advanced Custom Fields Multilingual 2.1.2
Resuelto en
Advanced Custom Fields Multilingual 2.1.3
Plugin/tema relacionado
Advanced Custom Fields (ACF)
Etiquetas de temática
ATE, Bug, Compatibility

Resumen del problema

Si está utilizando el plugin Advanced Custom Fields para registrar tipos de contenido personalizados o taxonomías personalizadas, puede encontrar un error fatal en entornos que utilizan PHP 8 o advertencias en PHP 7 cuando tiene datos corruptos almacenados para cualquiera de esos 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

Solución alternativa

Por favor, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.

Opción 1


Con Advanced Custom Fields Multilingual deshabilitado, edite el tipo de contenido o la taxonomía de ACF problemáticos, establezca los valores que faltan para las etiquetas o el slug del objeto y guarde los cambios. Luego, active Advanced Custom Fields Multilingual y todo funcionará correctamente.

Opción 2

  • Abra el archivo …/wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php.
  • Busque la línea 53.
  • Reemplace:
    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 los problemas conocidos →