Was sind “Action” und “Filter” Hooks in WordPress?
Marc Wagner
September 5, 2024
In WordPress spielen Hooks eine zentrale Rolle in der Anpassung und Erweiterung der Funktionalität ohne direkte Änderungen am Kerncode. Es gibt zwei Arten von Hooks: Action Hooks und Filter Hooks. Beide ermöglichen Entwicklern, benutzerdefinierte Funktionen zu bestimmten Zeitpunkten oder Stellen im WordPress-Prozess hinzuzufügen oder bestehende Funktionen zu modifizieren.
Action Hooks #
Ein Action Hook ermöglicht es dir, benutzerdefinierte Funktionen zu bestimmten Zeitpunkten im Lebenszyklus von WordPress auszuführen. Dies bedeutet, dass du eine Funktion “einhängen” kannst, die dann aufgerufen wird, wenn dieser bestimmte Punkt erreicht ist.
Beispiel für einen Action Hook
function meine_custom_action() { echo '<p>Hallo, dies ist eine benutzerdefinierte Nachricht!</p>'; } add_action('wp_footer', 'meine_custom_action');
In diesem Beispiel verwenden wir den wp_footer
Action Hook. Dieser Hook wird ausgeführt, kurz bevor der HTML-Tag </body>
in der Seite gerendert wird. Die Funktion meine_custom_action
fügt eine benutzerdefinierte Nachricht im Footer der Seite hinzu.
Wichtige Action Hooks in WordPress
wp_head
: Wird im<head>
-Bereich des Themes aufgerufen.wp_footer
: Wird im<footer>
-Bereich der Seite ausgeführt.init
: Wird bei jeder Anfrage in WordPress ausgelöst. Oft verwendet, um benutzerdefinierte Post-Typen oder Taxonomien zu registrieren.admin_init
: Wird während der Initialisierung des Admin-Panels ausgelöst.
Filter Hooks #
Ein Filter Hook ermöglicht es, Daten zu ändern, bevor sie von WordPress ausgegeben oder weiterverarbeitet werden. Mit Filter Hooks kannst du den Inhalt von Texten, Titeln, Metadaten usw. dynamisch anpassen.
Beispiel für einen Filter Hook
function meine_custom_title_filter($title) { return $title . ' - Anpassung durch Filter'; } add_filter('the_title', 'meine_custom_title_filter');
In diesem Beispiel verwenden wir den the_title
Filter Hook. Dieser Hook ermöglicht es, den Seitentitel zu verändern, bevor er auf der Seite angezeigt wird. Die Funktion meine_custom_title_filter
fügt den Text - Anpassung durch Filter
zum ursprünglichen Titel hinzu.
Wichtige Filter Hooks in WordPress
the_content
: Ändert den Inhalt eines Beitrags oder einer Seite.the_excerpt
: Wird auf den Auszug eines Beitrags angewendet.the_title
: Ändert den Titel eines Beitrags oder einer Seite.wp_nav_menu_items
: Ermöglicht die Anpassung der Menüelemente vor der Ausgabe.
Wie man Action und Filter Hooks verwendet #
Registrierung einer Funktion mit einem Hook: Sowohl für Actions als auch für Filter verwendest du die WordPress-Funktionen add_action()
bzw. add_filter()
, um deine benutzerdefinierten Funktionen zu registrieren.
add_action('hook_name', 'deine_funktion'); add_filter('hook_name', 'deine_funktion');
Argumente und Priorität: Sowohl add_action()
als auch add_filter()
erlauben zusätzliche Parameter, um die Priorität festzulegen und zu bestimmen, wie viele Argumente an die Funktion übergeben werden sollen.
add_action('hook_name', 'deine_funktion', 10, 2); add_filter('hook_name', 'deine_funktion', 15, 1);
Der dritte Parameter (z.B. 10
oder 15
) legt die Priorität fest. Je kleiner die Zahl, desto früher wird die Funktion ausgeführt. Der vierte Parameter bestimmt, wie viele Argumente an die Funktion übergeben werden.
Fazit #
Hooks, ob Action oder Filter, bieten eine flexible Möglichkeit, die Funktionalität von WordPress zu erweitern und anzupassen, ohne den Kerncode zu verändern. Action Hooks erlauben es dir, neue Funktionen hinzuzufügen, während Filter Hooks die vorhandenen Daten manipulieren, bevor sie ausgegeben werden.
Durch die Verwendung dieser Hooks kannst du Themes, Plugins und WordPress selbst auf vielfältige Weise anpassen und erweitern.
Artikel von:
Marc Wagner
Hallo, Marc hier. Ich bin der Gründer von Forge12 Interactive und bereits seit über 20 Jahren leidenschaftlich dabei Webseiten, Onlineshops, Anwendungen und SaaS-Lösungen für Unternehmen zu entwickeln. Vor der Gründung habe ich bereits in Börsen notierten Unternehmen gearbeitet und mir allerlei Wissen angeeignet. Dieses Wissen möchte ich nun an meine Kunden weitergeben.