Was sind „Action“ und „Filter“ Hooks in WordPress?

Marc Wagner, September 12, 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.

Benutzerbild von Marc Wagner
Marc Wagner

Hi Marc here. I'm the founder of Forge12 Interactive and have been passionate about building websites, online stores, applications and SaaS solutions for businesses for over 20 years. Before founding the company, I already worked in publicly listed companies and acquired all kinds of knowledge. Now I want to pass this knowledge on to my customers.

Ähnliche Beiträge

Kommentare

Hinterlasse einen Kommentar