WPML
Stato
Risolto
Segnalato per
Advanced Custom Fields Multilingual 2.1.2
Risolto in
Advanced Custom Fields Multilingual 2.1.3
Plugin/tema correlato
Advanced Custom Fields (ACF)
Tag dell’argomento
ATE, Bug, Compatibility

Panoramica del problema

Se utilizzi il plugin Advanced Custom Fields per registrare tipi di post personalizzati o tassonomie personalizzate, potresti riscontrare un errore fatale in ambienti che utilizzano PHP 8 o degli avvisi in PHP 7, quando hai dati corrotti archiviati per uno di questi oggetti:


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

Soluzione alternativa

Assicurati di avere un backup completo del sito prima di procedere.

Opzione 1


Con Advanced Custom Fields Multilingual disabilitato, modifica il tipo di post o la tassonomia di ACF che presenta il problema, imposta i valori mancanti per le etichette o per lo slug dell’oggetto e salva. Quindi attiva Advanced Custom Fields Multilingual e il problema sarà risolto.

Opzione 2

  • Apri il file …/wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php.
  • Cerca la riga 53.
  • Sostituisci:
    array_walk( $objectArgs['labels'], function( &$value, $key ) use ( $translatedLabels ) {
    	$value = Obj::propOr( $value, $key, $translatedLabels );
    } );
  • Con:
    $labels = Obj::propOr( [], 'labels', $objectArgs );
    array_walk( $labels, function( $value, $key ) use ( &$objectArgs, $translatedLabels ) {
    	$objectArgs['labels'][ $key ] = Obj::propOr( $value, $key, $translatedLabels );
    } );

Tutti i problemi noti →