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