- 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 ); } );