Filter Hooks im WordPress Development verwenden
Was sind WordPress Filter Hooks und Filter
Filter Hooks sind das Mittel um die Ausgabe des Codes zu manipulieren. Während du mit Action Hooks Code hinzufügen kannst, veränderst (oder filterst) du mit Filter Hooks den Code den WordPress dem Hook übergibt.
Du modifizierst also Daten/Code in WordPress bevor die in der Datenbank gespeichert oder ausgeführt werden.
Daher ist es logisch, dass du mindestens einen Parameter in deiner Filter-Funktion übergeben willst, denn um Daten zu filtern, musst du die erst erhalten, verändern und dann wieder übergeben.
Filter-Hooks – apply_filters()
Ein guter Start um das Konzept von Filter-Hooks zu verstehen, ist es sich die WordPress Funktion apply_filters()
genauer anzusehen. Mit dieser Funktion erstellst du eigene Filter.
Der Filter-Hook (nicht Filter, sondern Filter-Hook) – genutzt per apply_filters()
– erwartet mindestens zwei Parameter: der Name des Filters und die Daten, die gefiltert werden sollen.
In diesem Beispiel erstellen wir keinen eigenen Filter-Hook, sondern nutzen wir den von WordPress bereitgestellten wp_title
Filter-Hook, der für die Manipulation des Website-Titels genutzt werden kann.
<?php apply_filters( 'wp_title', $title, $sep, $seplocatoin ); ?>
- wp_title Der Name des Hooks.
- $title, $sep, $seplocatoin Die Daten, die verändert werden sollen, in diesem Fall der Titel, das Trennzeichen und die Position des Trennzeichens.
Filter – add_filter()
Ein Filter – genutzt per add_filter()
– ist eine Funktion, die einem Filter-Hook zugeordnet wird und mindestens einen Parameter erwartet, der verändert und dann wieder übergeben (return) wird.
Wenden wir also den oben genannten Filter-Hook wp_title
an, um das Trennzeichen im Website-Titel anzupassen.
<?php // Spreche den Filter-Hook 'wp_title' an // Als zweiten Parameter übergibst du deine Custom-Function // Der Dritte Parameter gibt die Priorität an, in der der Filter angewendet wird // Der vierte Parameter definiert, wie viele Parameter an den Filter übergeben werden add_filter ( 'wp_title', 'your_new_custom_title_tag', 10, 1); // Erstelle deine Funktion und übergebe den Parameter, den du filtern willst, in unserem Fall $sep function your_new_custom_title_tag( $sep ) { // Speichere das von dir gewünschten Trennzeichen in einer Variable $sep = "|"; // Übergebe das gefilterte/neue Trennzeichen return $sep; } ?>
Nun werden die Elemente deiner Website also mit einem neuen Trennzeichen separiert.
Hier ein weiteres Beispiel für einen Filter.
Nutzen wir beispielhaft einen weiteren Filter-Hook, den WordPress zur Verfügung stellt (excerpt_length) und der den Post-Excerpt verändert.
<?php // Spreche den Filter-Hook 'excerpt_length' an // Als zweiten Parameter übergibst du deine Custom-Function // Da 10 und 1 die Standardwerte für Priorität und Anzahl der Parameter sind, können wir sie weglassen add_filter ( 'excerpt_length', 'your_new_excerpt_length'); // Erstelle deine Funktion und übergebe den Parameter, den du filtern willst, also $length function your_new_excerpt_length( $length ) { // Definiere die Länge des Excerpts $length = 20; // Übergebe die gefilterte Excerpt-Länge return $length; } ?>
Nachdem du diesen Filter in der functions.php gespeichert hast, sind alle deine Excerpts 20 Wörter lang.
Unterschied und Nutzung von Filter-Hooks und Filtern
Ein Filter-Hook (apply_filters()
) ist also entweder ein Filter-Hook den WordPress bereitstellt oder ein Filter-Hook den du selbst erstellst. Der Filter-Hook definiert den Namen des Filters und die Daten die gefiltert werden sollen.
Per Filter (add_filter()
) kannst dann eine Funktion schreiben, die die übergebenen Daten verändert und musst sie dann wieder übergeben (return), sodass diese dann verändert weitergenutzt (z.B. im Frontend ausgespielt) werden.
P.S. Wenn dir der Artikel gefallen hat, abonniere doch die wöchentlichen Tutorials auf YouTube, den E-Mail-Newsletter oder Beteilige dich an der Diskussion auf Facebook.
Infobox
Die wichtigsten Git commands im Überblick
Most important Git commands Set User git config –global user.name... Programmieren lernen
Was ist Headless WordPress?
Was bedeutet der Begriff Headless WordPress? Wenn wir über Headless... Programmieren lernen
Action Hooks im WordPress Development
WordPress Hooks – Action-Hooks Action Hooks im WordPress Development: Mit... Programmieren lernen
Kommentare