Kritischer Bug beim Einsatz von WPML + ACF

Die mächtigen Plugins WPML für Mehrsprachigkeit und Advanced Custom Fields für eigene Felder gehören bei vielen Installationen zur Grundausstattung. Ärgerlich ist es, wenn es im Zusammenspiel zu Fehlfunktionen mit Datenverlust kommt. Die Bugreports zu dem Thema sind schon einige Jahre alt und unbeantwortet (hier und hier und hier und hier und hier). Ich habe mir das Problem nun einmal genauer angesehen.


Der Fehler tritt immer dann auf, wenn man eine sog. ACF Options Page erstellt:

ceef04e850da257a8aaa54e356199f61

Um den Bug zu reproduzieren, geht man wie folgt vor. Zunächst stellt man im Dashboard oben im Menü die Sprache auf "Deutsch". Nun öffnet man den Menüpunkt "Optionen" zweimal (in jeweils einem Tab). Wichtig ist hier, direkt den Menüpunkt aufzurufen. Im zweiten Tab wechselt man nun die Sprache (in unserem Beispiel auf "Englisch"). Nun nimmt man im ersten Tab Änderungen vor und klickt auf "Aktualisieren". Nun sind die Inhalte aller deutschen Felder fälschlicherweise in den englischen Feldern gelandet:

Das Ganze passiert ohne Vorwarnung und ist besonders fatal, wenn sehr viele Optionen überschrieben werden.

Folgender Hotfix in der functions.php löst das Problem:

ceef04e850da257a8aaa54e356199f61

Zurück