WordPress Hooks erklärt

WordPress bietet sowohl Action- als auch Filter-Hooks. Wenn man sich tiefer mit WordPress Themes und Plugins beschäftigt, wird man früher oder später darüber stolpern. Aber was ist eigentlich ein Hook und wann benötige ich ihn?

WordPress ist sehr modular aufgebaut. Es gibt den WordPress-Kern (Core) sowie unzählige Plugins und Themes. Damit die Plugins und Themes untereinander und mit dem WordPress-Kern kommunizieren können, greifen sie oftmals auf Hooks zurück. Über einen Hook kann ich eigenen Code an einer bestimmten Stelle im WordPress-Code ausführen lassen. Natürlich könnte ich auch den WordPress-Code direkt verändern, um den gewünschten Effekt zu erzielen. Der große Nachteil liegt jedoch darin, dass das nächste WordPress-Update all diese Änderungen überschreiben würde. Nach einem Update müssten alle Änderungen daher erneut durchgeführt werden. Genau aus diesem Grund gibt es die Hooks. Die Hooks selbst unterteilen sich nochmals in zwei Typen von Hooks: Action- und Filter-Hooks.

Zunächst zu den Action-Hooks:

Die Action-Hooks dienen dazu, eigenen Code an einer bestimmten Stelle der Code-Ausführung auszuführen, um das Ergebnis dort entsprechend einzufügen. Ein Beispiel hierfür wäre, Informationen in den <head>-Bereich der Website zu schreiben. So kann mein Plugin oder Theme beispielsweise einen weiteren Meta-Tag im HTML-Head hinzufügen. Folgender Code veranschaulicht das:

add_action('wp_head', 'exclude_robots');
function exclude_robots()
{
    echo '<meta name="robots" content="noindex, nofollow">';
}

Über add_action() wird meine eigene Funktion innerhalb von WordPress bekannt gemacht. Wenn WordPress jetzt den HTML-Head-Bereich erstellen möchte, wird in diesem Zuge auch meine exclude_robots()-Funktion ausgeführt.

Nun zu den Filter-Hooks

Filter funktionieren grundsätzlich ähnlich, verfolgen jedoch ein anderes Ziel. Der Sinn eines Filters ist, Inhalte zu „manipulieren“. Was beispielsweise, wenn ich ein bestimmtes Wort im Seiteninhalt durchgängig ersetzen möchte? Dann kann ich auf einen Filter-Hook zurückgreifen, der den Seiteninhalt „manipuliert“. Suche nach einem bestimmten Textstring und ersetze ihn. Anschließend wird auf jeder Seite (sofern entsprechend programmiert) der gewünschte Text ersetzt.

Ein weiteres, einfaches Beispiel soll dies verdeutlichen:

function change_excerpt_length( $words ) {
 return 15;
}
add_filter( 'excerpt_length', 'change_excerpt_length' );

Der Filter wird aufgerufen und soll die Länge des Text-Auszugs verändert werden. Dazu wird über die funktion add_filter() meine eigene Funktion change_excerpt_length() hinterlegt. In dieser Funktion wird die neue Anzahl an Wörtern definiert, nämlich 15.

Zusammenfassung

Kurz zusammengefasst, ein Action-Hook dient dazu, eigenen Code an einer speziellen Stelle auszuführen. Filter-Hooks sind dafür gedacht, bestehende Inhalte zu verändern.

Schreibe einen Kommentar