Was sind WordPress Hooks, Actions und Filter?

Was sind WordPress Hooks, Actions und Filter?

So ziemlich jeder ambitioniertere WordPress-Nutzer wird früher oder später einmal auf mindestens einen der Begriffe Hook, Action oder Filter treffen. Dahinter verbirgt sich ein großartiges Konzept ohne dem WordPress nicht das wäre, was es ist. Was steckt dahinter?

Zuerst eine ganz grundsätzliche Bemerkung. Hooks ist der Oberbegriff für diese technologische Konzept, bei den Hooks unterscheidet man zwischen Actions und Filter. Es handelt sich also nicht um drei verschiedene Dinge.

Der geniale Mechanismus der Hooks ist die Grundlage für die Flexibilität und die nahezu unbegrenzte Erweiterbarkeit von WordPress, die zum Teil für dessen Erfolg mit verantwortlich ist. Ohne Hooks gäbe es keine Plugins. Und auch Themes wären wesentlich eingeschränkter, wenn sie keine Hooks nutzen könnten.

An diesen „Haken“ kann man als Entwickler eigenen Programmcode „einhängen“, der dann genau an dieser Stelle ausgeführt wird. So muss der Code von WordPress selbst nicht verändert werden um die Funktionalität von WordPress zu erweitern oder zu verändern. Dafür stehen tatsächlich hunderte von Hooks zur Verfügung, die genutzt werden können, um den Programmablauf zu verändern. Damit aber noch nicht genug. WordPress stellt auch Funktionen zur Verfügung, mit denen ein #plugin oder ein #theme selbst eigene Hooks definieren kann, über die dann die Funktionalität dieses Plugins oder Themes ebenfalls wieder erweiterbar ist. Umfangreiche Plugins und Themes machen davon häufig Gebrauch. Dadurch werden Plugins möglich, die ein bestimmtes Theme erweitern oder auch Plugins für Plugins.

So wie man an einen Kleiderhaken nicht nur ein Kleidungsstück aufhängen kann – vorausgesetzt er ist groß genug – so kann an einem WordPress Hook auch nicht nur eine einzige Funktion „hängen“. Die Anzahl an Funktionen, die ein und den selben Hook benutzen, ist tatsächlich unbegrenzt. Bei den Hooks wird zwischen Action-Hooks und Filter-Hooks unterschieden. Technisch nutzen beide die selbe Infrastruktur, der Unterschied ist rein inhaltlich.

Action

Eine Action dient dazu, bestimmte Aktionen auszuführen. Die Stelle, an der diese im Programmablauf ausgeführt werden soll, wird durch einen Action-Hook definiert. Solche Action-Hooks stehen an Stellen im Programmablauf zur Verfügung, an denen eine Aktion erfolgt – wie beispielsweise wenn alle Plugins geladen worden sind, wenn das aktive Theme geladen worden ist oder wenn auf der aktuellen Seite eine Sidebar angezeigt wird. An diesen definierten Stellen kann ein Entwickler eignen Code „einhängen“, der ausgeführt werden soll.

Filter

Ein Filter dient dazu,  Daten zu filtern bzw. zu verändern, der Aufruf erfolgt durch einen Filter-Hook. Bei eine Filter übergibt WordPress – bzw. das Plugin oder Theme, das den Filter definiert – Daten an den Code, der ausgeführt werden soll. Diese Daten können verändert und wieder an das aufrufende Programm zurückgegeben werden. Damit ist es möglich, Daten zu ändern, bevor diese weiter verarbeitet werden.

WordPress ohne Hooks?

Hooks sind tatsächlich eine geniale Technik zur Erweiterung von WordPress. Ohne Hooks würde es kein einziges Plugin geben und nur sehr eingeschränkte Themes.

Artikel vom 30. Oktober 2017

Bisher noch keine Kommentare