Kleine CodeCrowd von programmieren lernen
Leon Hoffmann von codeCrowd Leon, 6 Feb 2020

Notiz: Filter Hooks im WordPress Development

Programmieren Lernen Blog Featured-Thumbnail Filter Hooks im WordPress Development

In der Kategorie NOTIZveröffentliche ich meine persönlichen Notizen, die ich mache, während ich selbst neue Themenbereiche erlerne. Vielleicht helfen diese Notizen ja auch dir.🤓

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

Kommentare