Ein Blick hinter die Kulissen von WordPress

13.09.2016 Babette Landmesser

WordPress ist eine der beliebtesten Anwendungen für die Verwaltung von Webseiteninhalten. Das WordCamp hat dieses Jahr erstmals in Frankfurt stattgefunden und hat der Community wieder die Möglichkeit geboten, sich zu Themen und Trends rund um das Content-Management-System auszutauschen. Die zahlreichen Sessions zu Blogging und Entwicklung sowie zu Server- und Sicherheitsthemen beinhalteten alles, was die Community interessiert. Besonders der Slot „Goldgrube WordPress – Vergessene Möglichkeiten“ von Mike Pretzlaw war ein spannendes Thema für die Teilnehmer.

In seinem Talk hat der Entwickler dargestellt, wie weitreichend der Core von WordPress ist. Konkret geht es um die Funktionen, Bibliotheken und Snippets, die im WordPress-Kern mitgeliefert werden. Diese gehen bei einer Installation häufig unter oder bleiben unberücksichtigt, weil der durchschnittliche Entwickler gar nicht weiß, dass sie ihm zur Verfügung stehen (und er gegebenenfalls auch nicht im Core danach sucht). Für die Frontend-Entwicklung stehen dabei vor allem JavaScript-Bibliotheken im Mittelpunkt. Die wohl bekannteste Bibliothek jQuery ist nur eine unter vielen.

Zwei dieser Bibliotheken werden folgend kurz vorgestellt, um einen Einblick in die Vielfältigkeit der inkludierten JavaScript-Bibliotheken zu geben.

Masonry: Layout-Liebling von Pinterest

Eine beliebte Layout-Variante ist Masonry, welche unter anderem von Pinterest verwendet wird. Hier ordnen sich die Elemente unter- und nebeneinander dort an, wo gerade Platz ist. Ein solches Layout kann man nicht ohne weiteres mit CSS gestalten, sondern muss auf eine JavaScript-Bibliothek zurückgreifen. WordPress bietet im Core bereits Masonry an. Da dieses Script aber nicht von jedem Theme oder Plugin verwendet wird, stellt WordPress lediglich das Script zur Verfügung, was jedoch nicht bedeutet, dass es auch im Theme/Plugin verwendbar ist. Dazu muss noch folgender Code in die functions.php (Themes) oder die Plugin-Datei eingebunden werden:

wp_enqueue_script( 'masonry' );

jQuery UI: Interaktive Navigation und mehr

Eine weitere Bibliothek kommt aus dem Hause jQuery. WordPress bietet nicht nur die Basis an, sondern das gesamte jQuery-UI-Paket. Darin enthalten sind zum Beispiel Animationen, der Datepicker, Accordion-Funktionen sowie die Methode position. Mit position kann man zwei Elemente aneinander ausrichten. Das kann beispielsweise für abhängige Formular-Felder, Eingabefelder basierend auf anderen Elementen oder auch eine interaktive Navigation nützlich sein. 

Wer noch mehr über die JavaScript-Bibliotheken erfahren möchte, die im WordPress-Core enthalten sind, schaut sich den Inhalt des Ordners am besten selbst an. Dazu muss man einfach nur die aktuellste Version von WordPress runterladen und im /wp-includes/js/ die einzelnen Skripte anschauen.

PHP-Konstanten für Backend-Entwickler

Für Backend-Entwickler gibt es einige hilfreiche Funktionen und Konstanten, über die man den Einfluss auf das Verhalten von WordPress regulieren kann. Um beispielsweise die eigenen Funktionen vor dem Laden der Themes und Plugins aufzurufen, nutzt man die Konstante SHORTINIT. Diese lädt nur die WordPress-Klasse, die Datenbank, die Actions sowie das Network. Wenn man dabei einen Schritt weitergehen möchte und alles außer dem Theme, also den HTML-Output, laden möchte, so nutzt man die Konstante WP_USE_THEMES und setzt sie auf true:

define(‘WP_USE_THEMES’, true);

Eine andere, praktische Konstante ist CORE_UPGRADE_SKIP_NEW_BUNDLED. Damit kann man das Verhalten von WordPress-Updates regulieren. Wenn man diese Konstante auf false setzt, so lädt WordPress bei jedem Update auch die hauseigenen Plugins wie Akismet und Hello Dolly mit. Außerdem werden die neuen Default-Themes, namentlich beispielsweise Twenty-Sixteen und alle anderen Twenty-* Themes, geladen. In vielen Fällen braucht man diese Themes allerdings gar nicht, da man ja sein eigenes verwendet. Also können wir über die Konstante Einfluss auf die Reinheit des wp-content-Ordners nehmen, in dem wir den Wert auf true setzen.  

Fazit: Mike Pretzlaw hat in seinem Talk damit begeistert, dass er unter http://wp-includes.org eine Übersicht aller vorgestellten Bibliotheken, Funktionen und Konstanten erstellt hat. Mit diesem Wissen kann man in Zukunft also ruhig mal einen weiteren Blick hinter die Kulissen von WordPress werfen und unter anderem nachschauen, ob die Bibliothek, die man verwenden möchte, nicht schon mitgeliefert wird.