WordPress FAQ

⌘K
  1. Start
  2. /
  3. WordPress FAQ
  4. /
  5. Glossar
  6. /
  7. Hook, Filter und Action i...

Hook, Filter und Action in WordPress

Was ist ein Hook, Filter oder Action in WordPress?

Das Hook-System ist das Fundament der WordPress-Erweiterbarkeit. Ein Hook ist ein definierter Punkt im Programmablauf von WordPress, an dem externer Code eingebunden oder Daten verändert werden können. WordPress unterscheidet zwei grundlegende Typen: Actions führen eigenen Code an einem bestimmten Ausführungspunkt aus, ohne einen Rückgabewert zu erwarten. Filters empfangen Daten, erlauben deren Veränderung und geben das Ergebnis zurück. Beide zusammen bilden das offizielle Plugin-API von WordPress, das unter developer.wordpress.org/plugins/hooks/ vollständig dokumentiert ist.

Was bedeutet das für Ihre Website?

Praktisch jede Funktionserweiterung in WordPress basiert auf diesem Hook-System. Wenn ein Sicherheits-Plugin nach einer bestimmten Anzahl fehlgeschlagener Login-Versuche eine IP-Adresse sperrt, hängt es sich an den wp_login_failed-Action-Hook. Wenn ein SEO-Plugin automatisch Meta-Tags in den <head>-Bereich der Seite einfügt, nutzt es den wp_head-Action-Hook. Wenn ein Plugin den Beitragsinhalt um eine Signatur-Zeile ergänzt, greift es über den the_content-Filter auf den Text zu, verändert ihn und gibt ihn zurück.

Das bedeutet für Ihren Website-Betrieb: Plugins verändern den WordPress-Kern nie direkt. Sie registrieren sich nur an bestimmten Punkten und werden dort aufgerufen. Die Registrierung eines Action-Hooks erfolgt mit add_action('hook-name', 'meine_funktion', $prioritaet, $argumente), die eines Filters mit add_filter('hook-name', 'meine_funktion', $prioritaet, $argumente). Der Prioritätswert (Standard: 10) bestimmt die Reihenfolge: niedrigere Werte laufen zuerst.

Konflikte zwischen zwei Plugins entstehen häufig dann, wenn beide Funktionen am gleichen Hook mit gleicher Priorität registriert sind und sich gegenseitig überschreiben. Ein WordPress-Fachmann kann in solchen Situationen gezielt eingreifen: Er meldet eine der Funktionen mit remove_action() oder remove_filter() ab und registriert sie mit angepasster Priorität neu. Ohne Kenntnis des Hook-Systems ist eine solche Fehlersuche kaum möglich.

Ein weiteres Praxisbeispiel: Sie möchten jedes Mal eine Benachrichtigung per E-Mail erhalten, wenn ein Beitrag veröffentlicht wird. Dafür hängen Sie Ihre Benachrichtigungsfunktion an den publish_post-Action-Hook. Ihr Code liegt in einem separaten Plugin oder im Child-Theme und läuft nach jedem Speichern automatisch, ohne dass Sie den WordPress-Kern oder bestehende Plugins anfassen müssen.

Warnung

Platzieren Sie eigene Hook-Registrierungen niemals direkt in der functions.php eines Parent-Themes. Bei jedem Theme-Update wird diese Datei überschrieben, und Ihre Anpassungen gehen verloren. Nutzen Sie stattdessen ein Child-Theme oder ein auf Code-Snippets spezialisiertes Plugin. So bleiben Ihre Hooks dauerhaft erhalten, sind klar von Theme-Updates getrennt und lassen sich zentral verwalten und deaktivieren, ohne das gesamte Theme anfassen zu müssen.

Verwandte Begriffe

PluginShortcodePHPAPIDebugging

Still stuck? Contact

Wie können wir helfen?