WPML
Status
Gelöst
Gemeldet für
Advanced Custom Fields Multilingual 2.1.2
Gelöst in
Advanced Custom Fields Multilingual 2.1.3
Zugehöriges Plugin/Theme
Advanced Custom Fields (ACF)
Themen-Tags
ATE, Bug, Compatibility

Übersicht über das Problem

Wenn Sie das Plugin Advanced Custom Fields verwenden, um benutzerdefinierte Beitragstypen oder benutzerdefinierte Taxonomien zu registrieren, kann es in Umgebungen mit PHP 8 zu einem schwerwiegenden Fehler oder in PHP 7 zu Warnungen kommen, wenn für eines dieser Objekte beschädigte Daten gespeichert sind:


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

Problemumgehung

Bitte stellen Sie sicher, dass Sie über ein vollständiges Backup Ihrer Website verfügen, bevor Sie fortfahren.

Option 1


Wenn Advanced Custom Fields Multilingual deaktiviert ist, bearbeiten Sie den problematischen ACF-Beitragstyp oder die Taxonomie, legen Sie die fehlenden Werte für die Beschriftungen oder den Objekt-Slug fest und speichern Sie. Aktivieren Sie dann Advanced Custom Fields Multilingual und das Problem ist behoben.

Option 2

  • Öffnen Sie die Datei …/wp-content/plugins/acfml/classes/Strings/Helper/ContentTypeLabels.php.
  • Suchen Sie nach Zeile 53.
  • Ersetzen Sie:
    array_walk( $objectArgs['labels'], function( &$value, $key ) use ( $translatedLabels ) {
    	$value = Obj::propOr( $value, $key, $translatedLabels );
    } );
  • Durch:
    $labels = Obj::propOr( [], 'labels', $objectArgs );
    array_walk( $labels, function( $value, $key ) use ( &$objectArgs, $translatedLabels ) {
    	$objectArgs['labels'][ $key ] = Obj::propOr( $value, $key, $translatedLabels );
    } );

Alle bekannten Probleme →