5.5. Widgets API

Widgets sind Inhaltsbereiche, die zu einer Seitenleiste (engl. Sidebar) hinzugefügt werden können.

Im Administrationsbereich unter Design » Widgets können sie per Drag & Drop in eine jeweilige Seitenleiste gezogen und damit aktiviert werden.

WordPress stellt natürlich auch dafür eine eigene API bereit.

Ein Widget erstellen

Ein Großteil von WordPress arbeitet nicht objektorientiert. Die Widgets-API allerdings schon. Das bedeutet, dass jedes Widget ein Objekt bzw. eine abgeleitete Klasse von WP_Widget sein muss

Ein Widget wird wie folgt erstellt:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Wenn Sie eine Plugin-Datei mit oben genannten Code füllen werden Sie nach der Aktivierung feststellen, dass nichts passiert. Der Grund ist, dass das Widget vorher noch registriert werden muss.

Ein Widget registrieren

Um ein Widget zu registrieren, so dass WordPress es auch erkennt, müssen Sie folgenden Code ausführen:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Zu diesem Zeitpunkt ist Ihr Widget bereits registriert und kann per Drag & Drop unter Design » Widgets im Administrationsbereich einer Seitenleiste zugeordnet werden.

Abb.: Widget per Drag & Drop verschieben
Abb.: Widget per Drag & Drop verschieben

Ein Widget konfigurieren

Wie weiter oben beschrieben, können die Widgets weiter konfiguriert werden. Und zwar mit den Variablen $widgets_options und $control_options:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Ergibt folgende Ausgabe:

Abb.: Widget Title, Description und Width
Abb.: Widget Title, Description und Width

Formular in Widget einbinden

Auch ein Widget hat Formularfelder, die in der Methode form() der Klasse definiert werden. Wir erweitern deshalb die Klasse MM_Mein_Widget um genau diese Methode:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Formulardaten von Widgets speichern

Die Formulardaten des Widgets werden per Ajax abgesandt und dann von WordPress entgegen genommen. Dabei wird als Callback die Methode update() der Klasse WP_Widget aufgerufen. Sie macht nichts anderes, als alle Werte wieder zurück zugeben. Diese werden dann gespeichert.

Das bedeutet: Sie müssen diese Methode nicht zwingend in Ihrer eigenen Klasse überschrieben. Es sei denn, Sie wollen die vom Benutzer eingegebenen Daten vorher validieren oder einen eigenen Filter darauf anwenden.

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Widget-Inhalte im Frontend ausgeben

Wenn man ein Widget im Administrationsbereich hinzufügt, möchte man natürlich auch erreichen, dass im Frontend etwas anzeigt wird. Die Ausgabe des Inhalts übernimmt die Methode widget() wie folgender Ausschnitt zeigt:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Das vollständige Widget-Beispiel

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Ein Widget entfernen

Natürlich kann ein bereits registriertes Widget auch wieder entfernt werden. und zwar mittels unregister_widget().

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.

Prüfen ob ein Widget angezeigt wird

Eventuell wollen Sie im Frontend überprüfen, ob ein Widget gerade aktiv ist und angezeigt wird. Dies können Sie mit der Funktion is_active_widget() tun:

<?php
function is_active_widget( $callback = false, $widget_id = false, $id_base = false, $skip_inactive = true ) {

}
?>

Dabei gilt:

Dieser Inhalt ist nur eingeschränkt verfügbar. Melden Sie sich vorher an.