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

Toutes les anomalies connues →