Was sind Filter?
Filter sind Funktionen, die WordPress zu bestimmten Zeitpunkten der Ausführung durchläuft, bevor eine Aktion mit den Daten ausgeführt wird (z. B. Hinzufügen zur Datenbank oder Senden an den Browser-Bildschirm). Filter befinden sich zwischen der Datenbank und dem Browser (wenn WordPress Seiten generiert) und zwischen dem Browser und der Datenbank (wenn WordPress der Datenbank neue Beiträge und Kommentare hinzufügt). Die meiste Eingabe und Ausgabe in WordPress durchläuft mindestens einen Filter. WordPress filtert standardmäßig etwas, und Ihr Plugin kann seine eigene Filterung hinzufügen.
Einhaken in einen Filter
Damit Benutzer bestimmte Daten (einen Wert, die Ausgabe einer Funktion usw.) ändern können, werden Filter-Hooks über apply_filters
Funktionen bereitgestellt .
Diese Filter-Hooks enthalten den Namen (oder das Tag ) des Filters und mindestens den Funktionsnamen, der zum Filtern (dh zum Ändern auf irgendeine Weise) der Daten verwendet werden soll.
Um den Titel eines Posts zu ändern, können Sie den the_title
Filter-Hook verwenden, der wie folgt definiert ist:
apply_filters( 'the_title', $title, $id );
Das heißt, der Filter hat das Tag / den Namen the_title
, der erste Parameter enthält $title
die zu ändernden Daten (dh den Post-Titel) und der zweite Parameter enthält $id
zusätzliche Informationen (in diesem Fall die Post-ID).
Um beispielsweise den Titel jedes Posts in GROSSBUCHSTABEN anzuzeigen, können Sie die folgende Zeile verwenden:
add_filter('the_title', 'strtoupper');
Wenn wir uns die add_filter
Funktion ansehen , sehen wir, dass sie wie folgt definiert ist:
add_filter( $tag, $function_to_add, $priority, $accepted_args );
Wir haben nur den ersten und den zweiten (erforderlichen) Parameter angegeben, während der dritte und der vierte Parameter auf den jeweiligen Standardwert (dh 10
und 1
) gesetzt sind.
Ein komplexerer Filter
Wenn Sie nur einen bestimmten Beitrag filtern möchten , können Sie die zusätzlichen Informationen verwenden (im Falle dieses Filters: die ID). Dazu müssen Sie die Anzahl der Parameter angeben (in diesem Fall 2), und um dies erneut zu tun, müssen Sie den Prioritätsparameter angeben (der vor der Anzahl der Argumente steht).
Angenommen, wir möchten nur den Titel des Beitrags mit der ID 42 beeinflussen, dann sieht es so aus:
add_filter('the_title', 'my_strtoupper', 10, 2);
function my_strtoupper($title, $id) {
if (42 === $id) return strtoupper($title);
return $title;
} // function my_strtoupper
In diesem Fall müssen alle vier verfügbaren Parameter angegeben werden.
Welche Parameter habe ich?
Um die (Anzahl) verfügbaren Parameter eines bestimmten Filters zu identifizieren, müssen Sie nachsehen, wo dieser definiert ist (in diesem Fall: hier ).
Referenzen :