Nach WordPress-Update JavaScript Fehler – Ursachen und die Lösung

Am 8. Dezember 2020 kommt die neue WordPress Version 5.6 raus. Mit ihr gibt es viele neue Features, unter anderem auch ein Update von der JavaScript-Bibliothek jQuery.
Warum sich dazu entschieden wurde, welche Auswirkungen das haben kann und wie mögliche Fehler behoben werden können, klären wir in diesem Artikel.

Auslöser jQuery – was ist das?

jQuery ist eine Bibliothek für JavaScript. Sie sammelt häufige Anwendungsfälle, um Interaktivität in eine Webseite zu bringen. Weil jQuery so umfangreich und zugleich recht einfach anzuwenden ist, ist es quasi eine Standardbibliothek geworden: Die Entwickler müssen nicht ständig gleiche Funktionen neu schreiben, sondern binden jQuery ein und können die Funktionen gleich nutzen.

WordPress wird auch standardmäßig mit jQuery ausgeliefert und nutzt die Funktionen auch. Jedoch ist die ausgelieferte Version von jQuery veraltet und wird in Version 5.6 aktualisiert.
Und das kann zu Problemen führen: Nicht nur WordPress nutzt die Bibliothek, sondern auch Themes und Plugins. Wenn diese auf alte, nicht mehr unterstützte Funktionen zugreifen, kann es sein, dass die neuste jQuery-Version diese nicht mehr unterstützt und es so zu Fehlfunktionen und Meldungen kommt.

Der Updateplan von jQuery in WordPress

Wir befinden uns bereits mitten drin im Prozess, die jQuery-Bibliothek zu aktualisieren. Der erste Anlauf wurde bereits mit WordPress Version 5.5 vorgenommen, die am 01. September 2020 veröffentlicht wurde.

  • WordPress 5.5: Entfernung von jQuery Migrate 1.x-Skript
  • WordPress 5.6: Update auf die neusten Versionen von jQuery, jQuery UI und jQuery Migrate Skripten
  • WordPress 5.7: Entfernung jQuery Migrate Skript

Bereits das Release 5.5 hat durch die Entfernung vom jQuery Migrate Skript für manch Furore gesorgt.

Was ist jQuery Migrate?

Mit der ständigen Weiterentwicklung von jQuery werden auch alte Funktionen gestrichen oder ersetzt. Zwar werden rechtzeitig Entwicklerversionen bereitgestellt und Plugin- sowie Theme-Autoren haben ausreichend Vorlauf, ihre Produkte darauf anzupassen. Doch es passiert nicht immer. Oder das Produkt wird gar nicht mehr gewartet. Oder die Autoren gibt es nicht mehr. Oder die Umstellung des Produkts ist sehr umfangreich und das Release einer neuen jQuery-Version kommt, bevor man fertig ist.

Für solche Fälle gibt es jQuery Migrate: Es aktiviert noch einmal alte Funktionen und stellt somit eine Abwärtskompatibilität dar. Die Produkte laufen fehlerfrei weiter, obwohl ihre Funktionen gar nicht mehr unterstützt werden.
Das soll aber nur ein temporärer Zustand sein und deswegen strebt WordPress nun an, das jQuery Migrate Skript komplett zu entfernen.

Debakel beim Release von WordPress 5.5

Dem Zeitplan folgend, hat man im September 2020 das erste, recht alte jQuery Migrate Skript deaktiviert. Grundsätzlich nichts Falsches: WordPress selbst ist bis heute nicht auf dem aktuellen Stand von jQuery – das jQuery Migrate Skript stellte also eine Kompatibilität zur grauen Urzeiten von jQuery her.
Problem: Der Schritt wurde zwar öffentlich gemacht, aber wer sich nicht auf der Seite vom WordPress Core informiert, der bekam von diesem Wechsel nichts mit – eine Info in einem installierten WordPress o.ä. blieb aus.

So kam es, dass nach einem Update auf WordPress 5.5 bei vielen Seiten diverse Funktionen nicht mehr gegeben waren: Sie waren so alt, dass sie nur dank jQuery Migrate noch funktionierten – und das fehlte nun. Zwar stand auch für diesen Fall ein eigenes Plugin bereit, das das alte jQuery Migrate wieder aktivierte. Aber aber auch die Existenz des Plugins wurde nicht breit angekündigt.

Information

Aktuell hat das Plugin Enable jQuery Migrate Helper knapp 200.000 Downloads. Das entspricht nicht zwingend der tatsächlichen Einsatzmenge – zeigt aber auf, dass viele Seiten Korrekturbedarf hatten oder haben.

WordPress 5.6 – mehr Updates, aber auch mehr Kommunikation

Trotz der Kommunikationsprobleme hält man am Plan fest, die Bibliotheken zu aktualisieren und auch das jQuery Migrate Skript langfristig abzuschalten.
Mit WordPress 5.6 werden die Bibliotheken nun wie folgt aktualisiert (laut Core-Ticket):

  • jQuery 3.5.1
  • jQuery Migrate 3.3.2
  • jQuery UI 1.12.1

Der Vorgang soll natürlich kommunikativ besser begleitet werden, aber man macht den nächsten Schritt nach vorn: jQuery wird aktualisiert und auch jQuery Migrate wird auf die neuste Version aktualisiert – und auch diese schneidet alte Zöpfe ab.

JavaScript-Fehler nach Update auf WordPress 5.6

JavaScript-Fehler können sich ganz verschieden zeigen: Häufig funktionieren Animationen oder separate Fenster nicht mehr, manchmal greifen kleine Automatismen nicht mehr oder der Versand des Kontaktformulars schlägt fehl.

In solchen Fällen ist die Chance hoch, dass die entsprechende Funktion von einem Code bereitgestellt wird, der nicht mehr mit den neueren Versionen kompatibel ist. Mit etwas Glück hilft Enable jQuery Migrate Helper weiter – es weist auch auf alte Skript-Zeilen hin und gibt Hinweise, wie sie zu aktualisieren sind.

Spätestens jetzt ist der Zeitpunkt gekommen, die Plugins und Themes zu aktualisieren. Wende dich an den Entwickler, dass er die Anpassung vornimmt und moderne Schnittstellen nutzt. Mittelfristig gibt es keinen Weg drumherum.

Unterstützung gebraucht?

Du hast Probleme mit einem Skript und verstehst nicht, was die Meldungen bedeuten? Womöglich bedarf es Anpassungen an Skripten, weil der Autor nicht mehr verfügbar ist?
Dann melde dich einfach bei uns und wir lösen das Problem gemeinsam.

Lösung “Enable jQuery Migrate Helper” – ein Pflaster, nicht mehr

Bei Betrachtung der Zeitschiene fällt auf, dass geplant ist, ab WordPress 5.7 gar kein jQuery Migrate Skript mehr auszuliefern. Laut aktueller Planung ist dies im März 2021 der Fall.
Bis dahin kann also das Plugin Enable jQuery Migrate Helper auf jeden Fall aushelfen – voraussichtlich auch über das Release von WordPress 5.7 hinaus. Doch die Planung zeigt ganz klar auf, dass man sich mit jQuery auf einen aktuellen Stand begeben und nicht mehr alte Zöpfe mitschleppen möchte.

Es ist keine Frage des “ob”, sondern nur des “wann” die Plugins und Themes aktualisiert werden müssen, weil sie nicht mehr unterstützt werden.

Es führt auch kein Weg daran vorbei, die Themes und Plugins zu aktualisieren. Wenn es keine Aktualisierungen mehr gibt, muss man sich nach Alternativen umschauen. Das Plugin-Verzeichnis bietet da ja eine große Auswahl – wir unterstützen natürlich auch gern, wo wir können.

Auf ein Wort: Aktualisierungen sind gut!

WordPress kann und will auch gar nicht auf der Stelle treten. Das Internet entwickelt sich weiter und bietet spannende Neuerungen. Dazu gehört auch, alte Funktionen abzuschalten und nicht mehr zu unterstützen. In einem vielgehörten Podcast habe ich mal den Satz gehört “Wer nicht mit der Zeit geht, geht mit der Zeit“.
Der Satz fasst es gut zusammen: Um stets modern und konkurrenzfähig zu bleiben, muss man sich weiterentwickeln. Die Ablösung von alten Versionsständen ist somit gut und richtig. Auch die Entscheidung, nur begrenzt rückwärtskompatibel zu sein, ermöglicht es erst, offen in die Zukunft zu schauen, ohne die vollständige Vergangenheit mit berücksichtigen zu müssen.

Themes und Plugins, die nicht auf dem aktuellsten Stand sind, profitieren weder von den Neuerungen im Internet, noch sind sie als sicher zu bezeichnen: Täglich werden neue Sicherheitslücken entdeckt und geschlossen. Wer weiß, welche Fehler in einem Skript schlummern, das seit Jahren nicht gepflegt wurde.

Fazit

Die Trennung von alten jQuery-Versionen und insbesondere die langfristige Trennung von jQuery Migrate wird bei Webseiten mit alten Themes und Plugins zu Problemen führen. Lösung dafür ist ausschließlich das Aktualisieren oder gar Ersetzen der Komponenten durch ein modernes, gepflegtes Produkt.

Übergangsweise Abhilfe schaffen können das Plugin Enable jQuery Migrate Helper und/oder die manuelle Korrektur, ggf. durch WordPress-Dienstleister wie uns. Doch das ist nur das Beheben des Symptoms und nicht der Ursache: Alte, ungepflegte Produkte haben auf einer modernen produktiven Seite nichts zu suchen und sollten durch aktuelle Produkte ersetzt werden.

Schreibe einen Kommentar