Build-Note05. Sept. 2024

Was sind "Action" und "Filter" Hooks in WordPress?

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.