Seit dem Update auf WordPress 6.7 wird im Query Monitor der Fehler „Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the wordpress-seo domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. (This message was added in version 6.7.0.) – _load_textdomain_just_in_time()“ angezeigt.
Auf deutsch heisst diese Meldung:
„Die Funktion _load_textdomain_just_in_time wurde inkorrekt aufgerufen. Das Laden der Übersetzungen für die Domain ‚wordpress-seo‘ wurde zu früh ausgelöst. Dies deutet normalerweise darauf hin, dass ein Code im Plugin oder Theme zu früh ausgeführt wird. Übersetzungen sollten erst während der ‚init‘-Aktion oder später geladen werden. (Diese Nachricht wurde in Version 6.7.0 hinzugefügt.)“
Bedeutung des Fehlers
Dieser Fehler tritt auf, weil die Funktion, die für das Laden der Übersetzungen (Textdomains) zuständig ist, zu früh im WordPress-Ladeprozess aufgerufen wurde. In WordPress wird empfohlen, Übersetzungen erst ab der init
-Aktion oder später zu laden, da zu diesem Zeitpunkt alle nötigen Ressourcen geladen sind.
Wenn die Übersetzungen zu früh geladen werden, kann es zu Problemen mit der richtigen Lokalisierung der Webseite kommen, und es kann auch andere Fehler im Code verursachen. Der Fehler weist darauf hin, dass entweder im Plugin (in diesem Fall wahrscheinlich das „Yoast SEO“-Plugin) oder im Theme der Code zu einem falschen Zeitpunkt ausgeführt wird.
WordPress 6.7 Probleme
Da der Fehler seit WordPress 6.7 in Bezug auf unterschiedliche Plugins auftritt, wird dieser wohl auch dadurch verursacht. Ob hier seitens WordPress oder der Plugin Anbieter nachgebessert werden muss ist noch nicht klar.
Hintergrund: Ab Version 6.7 von WordPress wurde eine strengere Handhabung beim Laden von Übersetzungen eingeführt. Insbesondere wurde die Fehlermeldung hinzugefügt, die besagt, dass Übersetzungen nicht zu früh im Ladeprozess, sondern erst ab der init
-Aktion oder später geladen werden sollten.
Einige Plugins, die vorher problemlos Übersetzungen zu einem früheren Zeitpunkt geladen haben, könnten diese Änderung nicht berücksichtigt haben, was zu der beschriebenen Fehlermeldung führt. In der Praxis bedeutet das, dass Plugins, die vor Version 6.7 mit dieser frühen Ladeweise funktioniert haben, jetzt inkorrekt aufgerufen werden und diesen Fehler erzeugen.
Mögliche Lösungen:
- Plugin-Updates:
- Überprüfe, ob Updates für die betroffenen Plugins verfügbar sind. Da die Änderung in WordPress 6.7 eingeführt wurde, haben die Plugin-Entwickler vermutlich bereits Updates veröffentlicht, die diesen Fehler beheben.
- Falls kein Update verfügbar ist, solltest du den Plugin-Entwickler kontaktieren und ihn auf das Problem hinweisen. Es könnte ein Fehler oder eine notwendige Anpassung im Plugin-Code vorliegen.
- Temporäre Lösung – Hook anpassen: Wenn du Entwicklerzugriff hast und die Plugins selbst bearbeitest, könntest du versuchen, den Ladezeitpunkt der Übersetzungen auf den richtigen Hook zu verschieben (wie oben beschrieben). Du müsstest dabei prüfen, ob die betroffenen Plugins selbst Übersetzungsfunktionen an der falschen Stelle auslösen, und diese dann auf den
init
-Hook oder später verschieben.Beispiel:add_action( 'init', 'correct_translation_loading', 10, 0 ); function correct_translation_loading() { load_plugin_textdomain( 'plugin-domain', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' ); }
- Fehlerprotokolle und Debugging:
- Um herauszufinden, welches Plugin oder welche Funktion genau den Fehler auslöst, könntest du den WordPress-Debug-Modus aktivieren (
wp-config.php
), um detaillierte Fehlermeldungen zu erhalten. Damit kannst du gezielt nachsehen, welcher Teil des Codes für das zu frühe Laden verantwortlich ist. - Du kannst auch ein Debug-Plugin wie Query Monitor installieren, um herauszufinden, welche Funktionen aufgerufen werden, bevor der Fehler auftritt.
- Um herauszufinden, welches Plugin oder welche Funktion genau den Fehler auslöst, könntest du den WordPress-Debug-Modus aktivieren (
- Überprüfe Konflikte zwischen Plugins: Es könnte auch sein, dass bestimmte Plugins miteinander in Konflikt stehen und die Ladezeit der Übersetzungen beeinflussen. In diesem Fall kann es helfen, Plugins nach und nach zu deaktivieren und zu testen, welches den Fehler verursacht.
- Anzeige unterdrücken:
Mit dem folgenden Snippet könnt ihr die Anzeige auch einfach vorübergehend unterdrücken:add_filter( 'doing_it_wrong_trigger_error', '__return_false' );
Fazit:
Die Hauptursache ist die Änderung in der Art und Weise, wie WordPress ab Version 6.7 mit Übersetzungen umgeht. Um den Fehler zu beheben, ist es wichtig, sicherzustellen, dass Übersetzungen erst beim init
-Hook oder später geladen werden. Die meisten Plugin-Entwickler sollten dieses Problem in zukünftigen Versionen berücksichtigen und Updates bereitstellen.