- Statut
- Résolu
- Signalé pour
- Advanced Custom Fields Multilingual 2.1.2
- Résolu dans
- Advanced Custom Fields Multilingual 2.1.3
- Extension/thème associé
- Advanced Custom Fields (ACF)
- Étiquettes de sujet
- ATE, Bug, Compatibility
Aperçu de l’anomalie
Si vous utilisez l’extension Advanced Custom Fields pour enregistrer des types de publication personnalisés ou des taxonomies personnalisées, vous pouvez rencontrer une erreur fatale dans les environnements utilisant PHP 8, ou des avertissements sous PHP 7, lorsque des données corrompues sont stockées pour l’un de ces objets :
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
Solution de contournement
Veuillez vous assurer d’avoir une sauvegarde complète de votre site avant de continuer.
Option 1
Une fois Advanced Custom Fields Multilingual désactivé, modifiez le type de publication ou la taxonomie ACF problématique, définissez les valeurs manquantes pour les étiquettes ou le slug de l’objet, et enregistrez-le. Activez ensuite Advanced Custom Fields Multilingual et tout rentrera dans l’ordre.
Option 2
- Ouvrez le fichier …/wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php.
- Allez à la ligne 53.
- Remplacez :
array_walk( $objectArgs['labels'], function( &$value, $key ) use ( $translatedLabels ) { $value = Obj::propOr( $value, $key, $translatedLabels ); } ); - Par :
$labels = Obj::propOr( [], 'labels', $objectArgs ); array_walk( $labels, function( $value, $key ) use ( &$objectArgs, $translatedLabels ) { $objectArgs['labels'][ $key ] = Obj::propOr( $value, $key, $translatedLabels ); } );