[Warten auf die Bestätigung des Benutzers] Fehlermeldung nach Umstellung der PHP Version auf 8.2
Dies ist das technische Support-Forum für WPML – das mehrsprachige WordPress-Plugin.
Mitlesen können alle, doch nur WPML-Kunden können hier Fragen veröffentlichen. Das WPML-Team antwortet im Forum an 6 Tagen pro Woche, 22 Stunden am Tag.
Sun
Mon
Tue
Wed
Thu
Fri
Sat
-
7:00 – 12:00
7:00 – 12:00
7:00 – 12:00
7:00 – 12:00
7:00 – 12:00
-
-
13:00 – 16:00
13:00 – 16:00
13:00 – 16:00
13:00 – 16:00
13:00 – 16:00
-
Unterstützt die Zeitzone: America/Sao_Paulo (GMT-03:00)
Hintergrund des Themas:
Ich habe die PHP Version von 7.4 auf 8.2 erhöht und alle Plug-Ins sowie WordPress auf die neueste Version aktualisiert. Nun erhalte ich einen Fehler beim Ändern von Inhalten. Der Fehler scheint mit dem Plugin Advanced Custom Fields Pro zusammenzuhängen, das durch das Plugin Advanced Custom Fields Multilingual erweitert wird. Link zur Seite, auf der das Problem zu sehen ist: versteckter Link
Die Symptome:
Die Fehlermeldung lautet: PHP Fatal error: Uncaught TypeError: Illegal offset type in isset or empty in /www/htdocs/w005600a/hbh-immobilien-wp/wp-content/plugins/advanced-custom-fields-pro/includes/class-acf-data.php:96
Fragen:
Wie kann ich den Fehler beim Ändern von Inhalten beheben?
Gibt es bekannte Probleme mit Advanced Custom Fields Pro und PHP 8.2?
nach einer ausführlichen Analyse haben wir bestätigt, dass das Problem durch ein Kompatibilitätsproblem zwischen dem ACFML-Plugin und dem Upgrade auf PHP 8.2 verursacht wird. PHP 8.2 erzwingt eine strengere Typprüfung für Array-Schlüssel, was in Ihrem Fall aufgrund ungültiger Datenbankeinträge zu einem Fehler führt.
Um das Problem zu beheben, müssen diese Einträge direkt in der Datenbank gelöscht werden. Da Änderungen an der Datenbank sensibel sind, stellen Sie bitte sicher, dass Sie ein vollständiges Backup Ihrer Website erstellt haben, bevor Sie fortfahren.
Greifen Sie auf Ihre Datenbank zu – über PhpMyAdmin, das Adminer-Plugin oder ein anderes Tool Ihrer Wahl – und führen Sie folgenden Befehl aus:
DELETE FROM wp_postmeta
WHERE meta_key LIKE '\\_\\_%' ESCAPE '\\';
Danach sollte Ihre Datenbank bereinigt sein und der Fehler nicht mehr auftreten. Lassen Sie mich wissen, wie es läuft.