Kurz bevor meine Bloghütte morgen Dreijähriges feiert, habe ich mal ein wenig im Headercode der Seite aufgeräumt und abgestaubt.

Vor knapp eineinhalb Jahren hatte ich die Javascript-Bibliothek jQuery für mich und das Blog entdeckt und auch gleich für die Anzeige der Links links eingebaut. Dazu musste ich die jQuery-Library auf den Server packen und es entsprechend verlinken. Dieser Link lebte seither in der header.php.

Seit einiger Zeit hat WordPress die jQuery-Library sowieso schon mit an Bord -- da ist es ja naheliegend, diese zu benutzen und den eigenen Kram über Bord zu werfen. Das "wordpresseigene" jQuery liegt unter

[blogverzeichnis]/wp-inckudes/js/jquery/jquery.js

Man kann nun natürlich einfach in die header.php des verwendeten Themes den entsprechenden Code reinschreiben, aber WordPress wäre ja nicht WordPress, wenn es da nicht noch eine smartere Variante gäbe: In diesem Fall die Funktion mit dem nahezu unaussprechlichen Namen wp_enqueue_script.

Um das bord-eigene jQuery zu benutzen, genügt es, unmittelbar vor dem Aufruf

wp_header();

das hier einzufügen:

wp_enqueue_script('jquery');

Man muss allerdings beachten, dass dieses wordpressintere jQuery-Script schon in den "noConflict"-Modus versetzt wurde. Man kann also nicht mit $(...) im eigenen jQuery-Script arbeiten, sondern muss jQuery(...) verwenden. Dafür funktionieren diese Scripte auch wenn zusätzlich zu jQuery andere Javascript-Bibliotheken wie Scriptalicious oder Mootools laufen.

Auf die gleiche Art kann man auch das "Thickbox"-Script einbinden, es befindet sich in

[blogverzeichnis]/wp-includes/js/thickbox/thickbox.js

Allerdings muss man noch dafür Sorge tragen, dass die Thickbox-CSS-Styles aus dem gleichen Verzeichnis eingebunden werden, sonst sieht das etwas komisch aus auf der Seite.

Bislang hatte ich das Plugin "Thickbox" im Einsatz, dank der oben beschriebenen Schritte ist das nun nicht mehr nötig. Das Plugin bietet aber einige sehr interessante Dinge - zum Beispiel kann man es so konfigurieren, dass es die Scripte nur auf Seiten einbindet, die es auch benötigen; meine Lösung bindet es immer in den Header ein, egal, ob auf der Seite ein Eintrag ist, der es benutzt, oder nicht. Dummerweise bindet das Plugin aber seine eigene jQuery-Installation ein und benutzt es mit der "$(...)" Schreibweise. Das bedeutet, mit dem wp-eigenen jQuery funtkioniert das Plugin nicht und man bindet zwei jQuery-Versionen ein, was völlig unnötig ist.

Update 27.8.08

Christian Schenk hat sein Thickbox-Plugin erweitert - es ist nun möglich, selbst darüber zu entscheiden, ob die Bibliotheken eingebunden werden (siehe Kommentar) und Plugin-Website.