Du hast deinen AdBlocker an?

Es wäre ein Traum, wenn du ihn für t3n.de deaktivierst. Wir zeigen dir gerne, wie das geht. Und natürlich erklären wir dir auch, warum uns das so wichtig ist. Digitales High-five, deine t3n-Redaktion

t3n 18

WordPress: Schnelleinstieg in die Entwicklung eigener WordPress-Widgets

Ein WordPress-Blog lässt sich mit Widgets einfach und unkompliziert erweitern. Die kleinen Helferlein klinkt man einfach in die Seitenleiste des Blogs ein, wo sie eigene oder externe Inhalte darstellen. Fast genauso einfach wie die Einbindung eines Widgets ist die Programmierung.

Bis zur WordPress-Version 2.2.x konnte man die Anzeige zusätzlicher Blöcke mit Inhalten nur durch die Anpassung eines Themes erreichen. Seit WordPress 2.3 ist das anders: Mit so genannten Widgets [1] lässt sich ein Theme um zusätzliche Funktionen oder Inhalte erweitern, ohne dass man dabei in das Theme eingreifen muss.

Per Drag & Drop kann man der Sidebar eines Themes im Backend von WordPress bequem ein neues Widget hinzufügen. Je nach Theme stehen einem dabei entweder nur eine oder auch mehrere Seitenleisten zur Verfügung, die Widgets aufnehmen können. Für Anwender haben Widgets den Vorteil, dass sie sie ohne Kenntnisse von HTML oder PHP nutzen können. Darüber hinaus bleiben die eingebundenen Widgets bei einem Wechsel des Themes erhalten.

Seit Version 2.8 stellt WordPress Entwicklern eine eigenständige API [2] zur Verfügung, welche die Entwicklung und Bereitstellung von Widgets stark vereinfacht. Die folgenden Ausführungen beziehen sich auf die Programmierung von Widgets ab WordPress 2.8.

Verfügbare Widgets kann man im Backend per Drag & Drop aktivieren.
Verfügbare Widgets kann man im Backend per Drag & Drop aktivieren.

Voraussetzung für Widgets in Themes

Um Widgets innerhalb eines Themes einsetzen zu können, muss das Theme Widgets unterstützen. Ein Theme ist generell dann in der Lage, mit Widgets umzugehen, wenn zwei Bedingungen erfüllt sind. Im Theme selbst muss ein entsprechender Bereich in der Seitenleiste (sidebar) vorhanden sein, der dynamisch Widgets aufnehmen kann. Folgende Ergänzung ist dabei notwendig:

PHP

<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar($name_or_number) ) : endif;
?>

Listing 1

Ausgabe eines Widgets im Frontend.
Ausgabe eines Widgets im Frontend.
Die Widgets erscheinen später dort, wo der Code-Schnipsel eingefügt wird. Wenn mehr als ein Bereich für Widgets genutzt werden soll, ist die Verwendung des optionalen Parameters unerlässlich. Es kann entweder eine ID oder ein Name (Typ: String) übergeben werden. In „sidepar.php“ können vor und nach dem Widget-Befehl noch HTML- oder WordPress-Tags verwendet werden. Neben der Möglichkeit, die Sidebar mit mehreren dynamischen Bereichen auszustatten, kann man auch jeden anderen Bereich innerhalb eines Themes auf die gleiche Weise widgetfähig machen.

Die zweite Voraussetzung für die Nutzung von Widgets innerhalb eines Themes ist ein Zusatz in der Datei „functions.php“. Sollte diese Datei noch nicht im Ordner des Themes vorhanden sein, so muss sie neu angelegt werden. Innerhalb der Datei wird folgender PHP-Code eingetragen:

PHP

<?php
if ( function_exists('register_sidebar') ) register_sidebar(array(
'name'=> $name_or_number,
'before_widget' => '',
'after_widget' => '',
'before_title' => ''
,'after_title' => ‚‘,));
?>

Listing 2

Der Parameter „$name_or_number“ bezieht sich dabei auf den Bezeichner, der zuvor beim Aufruf der Funktion „dynamic_sidebar“ an anderer Stelle im Theme gewählt wurde. Mit Hilfe von „before_widget“, „after_widget“, „before_title“ und „after_title“ kann zusätzlich noch festgelegt werden, was vor und nach dem Widget beziehungsweise dem Titel stehen soll. Das ist hilfreich, wenn zum Beispiel ein Widget von einem div-Element mit einer bestimmten Klasse umschlossen werden soll.

Sind mehrere dynamische Bereiche vorhanden, so muss für jeden ein eigener Code-Block erstellt werden, sofern die Abfrage nicht von einer Schleife umschlossen wurde [3] oder die alternative Funktion „register_sidebars“ [4] verwendet wird.

Bitte beachte unsere Community-Richtlinien

Schreib den ersten Kommentar!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Finde einen Job, den du liebst