oder Warum mein WordPress plözlich Javascripts von google lud
Ich bastele gerne mal und probiere dabei Dinge aus,
einfach weils geht. Wie der Zufall so will war heute dieser Blog dran. Ich hatte bereits vorher hin und wieder an Optimierungen geschraubt, dabei allerdings immer auf Datenspaarsamkeit und ähnliches geachtet.
Google Analytics kam daher z.B. bisher nicht in Frage. [Ja das ist einfach ein bischen meine Macke]
Umso mehr verwunderte es mich, als ich dann heute feststellte das dieser, mein eigener Blog, Skripte von Google nach lud. Und das gleich garnicht zu knapp: Ganze neun Scripte wurden bei einem Seitenaufruf von ajax.googleapis.com geladen. Der Sache musste also nachgegangen werden. Drehte vielleicht eines der Pluings frei, war in einem der letzten Updates eine entsprechende Änderung gewesen oder am schlimmsten gar war es eventuell jemandem gelungen Code bei mir einzuschläusen ?
Die Google-Suche war leider wenig erfolgreich. Lediglich einige Blogposts die beschrieben wie man all seine Scripte von Google läd tauchten auf, und das war ja nun genau das gegenteil von dem was ich suchte. Da das nun also nicht half war der nächste logische Schritt mal zu schauen wo diese Einbindung den eigentlich stattfindet. Also Shell aufgemacht, und die WordPressfiles nach “ajax.googleapis.com” durchsucht. Das Ergebnis deutete Relativ eindeutig auf “wp-includes/script-loader.php”. Hier werden scheinbar diverese “scriptaculous” Scripte aus den googleapis eingebunden.
Na das war zumindest schon mal konkreter. “wp-includes/script-loader.php” ist aber kein File eines Plugins, dass ist ein File des WordPress-Cores. Also nochmal schnell in die Suchmaske, und siehe da unter “Removed from Core” tatsächlich wurde in Version 3.5 diverse Scriptaculous-Scripte von “Mitgeliefert” auf die “Google-Version” umgestellt. WordPress-Core,umgestellt, dann müssten ja andere das “selbe Problem” haben, so dachte ich. Nun gut, schnell in ein-zwei WordPressblogs befreundeter Nerds aufrufen. Aber hier war keine Spur von “ajax.googleapis.com”.
Also doch mal genauer schauen wie das mit diesen Javascript libs in WordPress funktioniert.
Wenig später war dann auch die Sachlage klar und der “Schuldige” gefunden:
Wordpress hat ganz grob gesagt, einen Mechanismus der scheinbar verhindert das Scripte mehrfach eingebunden werden. Daher wird ein Script registriert (das passiert für die googleapi Scripte in der “script-loader” Datei). Wird das Script anschließend benötigt wird eine Funktion aufgerufen (bei den Scriptaculous-Scripten war es bei mir das Lightbox-Plugin) die dann dafür sorgt, das das Script eben genau nur ein mal eingebunden wird.
Sprich der eine Schuldige sind eigentlich zwei. Wobei das Lightbox-Plugin nicht wirklich was dafür kann, denn bei dessen letztem Update lieferte WordPress die entsprechenden Scripte noch frei Haus mit.
Abschließend ein etwas unschönes Problem, vor allem da mir kein schöner Lösungsweg klar ist.
Natürlich kann ich das Lightbox-Plugin deaktivieren, aber das kann ja nicht die Idee sein.
Ich kann natürlich auch in dem script-loader File die Locationen der Scriptaculous-Scripte von Googleapis auf meine Domain biegen, aber das ist nicht nur extrem unschön sondern geht auch bei jedem Update flöten.