WordPress: jQuery von Google laden

Google bietet mit seinem Service Google Libraries API Website-Betreibern an, APIs wie jQuery direkt aus dem CDN (Content Delivery Network) zu beziehen. Dateien, die in einem CDN gehostet sind, nehmen Last vom Server der eigenen Homepage und, sofern die Homepage auch aus dem internationalen Raum aufgerufen wird, werden aus dem Rechenzentrum übertragen, das dem Besucher geographisch am nähesten ist.

Anhand von folgendem Beispiel lässt sich WordPress dazu bringen, jQuery nicht mehr aus der eigenen Installation zu verwenden, sondern direkt auf die Google-Server zu verweisen.

Den Code fügt man am besten an den Anfang seiner functions.php, die man im Bereich Design -> Editor vorfindet.

if ( !is_admin() ) {
wp_deregister_script( 'jquery' );
wp_register_script( 'jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js', false, '1.6.2', true );
wp_enqueue_script( 'jquery' );
}

Erklärung:
wp_deregister_script deregistriert erst einmal jQuery.
Im Anschluss wird es mit wp_register_script und den Parameteraufrufen wieder registriert.
Abschließend wird jQuery mit wp_enqueue_script der Warteschlange der zu ladenden Scripte hinzugefügt.

Anbei noch ein kleiner Exkurs zum Thema wp_register_script:

<?php wp_register_script( $handle, $src, $deps, $ver, $in_footer ); ?>

$handle ist der Name mit dem das Script bezeichnet wird; $src gibt den Pfad zum Script an; $deps gibt an, ob das Script Abhängigkeiten hat, also z.B. erst jQuery geladen werden muss, bevor jQuery UI geladen werden kann; $ver übergibt die Version des Scripts; $in_footer bestimmt, ob das Script im Footer geladen werden soll oder nicht. Letzteres ist insofern interessant, da sich die Ladezeiten von Webseiten durch das Platzieren von Script-Aufrufen am Ende des Quelltextes optimieren lassen.

WordPress schneller machen mit GZip

Gerade umfangreiche und textlastige Homepages können schnell zu „Code-Bergen“ im zwei- bis dreistelligen KB-Bereich werden. Dabei sind Bilder, CSS- und JavaScript-Dateien noch gar nicht mit einberechnet.

Gerade für Nutzer mit schmalbandigen Verbindungen wie Mobilfunk etc. macht es daher dann schon einen Unterschied, ob eine Seite nun beispielsweise 150KB Code oder nur 40KB Code lädt.

Was viele nicht wissen ist, dass es sehr leicht ist, sein WordPress ohne große Plugin-Orgien mit HTTP-Kompression auszustatten. Die HTML-Inhalte werden dann vor der Übertragung zum Client on-the-fly komprimiert und bei Erhalt wieder entpackt. Natürlich bedeutet dies für beide Seiten einen geringfügig höheren Rechenaufwand, jedoch ist dieser in meinen Augen gerade im privaten Bereich eher zu vernachlässigen.

Neben dem Aspekt, dass der Nutzer nun weniger Code laden muss und somit die Seite tendenziell schneller zu Augen bekommt, spielt für Suchmaschinen die Qualität einer Homepage auch in Hinsicht der Aufrufdauer eine Rolle. Man kann also sagen, dass der Webmaster dadurch auch sein Ranking positiv beeinflussen kann.

Code und Einbindung

Im WordPress-Dashboard wählt man den Menüpunkt Design und anschließend Editor. In die Datei functions.php fügt man nun folgende Zeilen ein

if(extension_loaded("zlib") && (ini_get("output_handler") != "ob_gzhandler"))
add_action('wp', create_function('', '@ob_end_clean();@ini_set("zlib.output_compression", 1);'));

und speichert im Anschluss.

Um zu überprüfen, ob die Operation erfolgreich war, besucht man am besten noch schnell folgende Seite und gibt dort seinen WordPress-Blog ein.

In meinem Fall konnte ich die zu übertragende Datenmenge so immerhin um über 70% reduzieren.

WordPress 3.0 sieht fantastisch aus!

Habe mir gerade das Video der vor kurzem erschienen Version 3.0 von WordPress angeschaut und bin richtig heiß darauf, in Kürze umzusteigen.

Das neue Standard-Theme Twenty Ten sieht richtig schick aus und auch die neuen API-Funktionen machen auf den ersten Blick einiges her.

Auf die Multi-Page-Funktion habe ich zwar nicht wirklich gewartet, aber sie ist sicherlich ein nettes Gimmick und irgendwann werde ich die bisherigen Blogs in eine DB konsolidieren (etwas, das ich sowieso schon lange machen wollte, es aber immer verschoben habe).

Die selbst zusammenstellbaren, dynamischen Menüs erlauben z.B. auch die Integration externer Links ohne zusätzliche Plugins und erleichtern das Erstellen verschachtelter Strukturen.

Bin gespannt, wie viele meiner jetzigen Plugins ich dann in den Ruhestand schicken werde.

Anbei das Video, das die neuen Funktionen vorstellt: