Ich habe die Dokumentation mehrmals durchgelesen und es hat mir schwer gefallen, herauszufinden, was mit der Funktion passiert. Ich bin mehr und mehr verwirrt, nachdem ich mir die Dokumentation angesehen und auch den Quellcode angeschaut habe.
add_filter($tag, $hook, $priority, $args);
es scheint mir die neue Funktion erweitert die Elternfunktion. Was für ein Puzzle ich bin, ist, welche Teile des Hakens außer Kraft gesetzt werden. In einigen Beispielen in der Dokumentation sehe ich, dass einige Variablen durch die $ Argumente in Ihrem neuen $ -Tag ersetzt werden.
Ich habe fast alles hier verstanden: Ссылка
aber dann konnte ich nicht herausfinden, wie Sie Argumente übergeben und welche schließlich überschrieben werden.
Danke im Voraus.
add_filter()
ist eine Begleitfunktion zu apply_filters()
. Bevor apply_filters
für einen bestimmten Filter ausgeführt wird (das Argument $tag
in add_filter()
), können Sie mit add_filter
einen Filter für ein Tag registrieren. Wenn apply_filters()
mit diesem Tag-Namen ausgeführt wird, ruft es alle registrierten Filter der Reihe nach auf. Filter werden verwendet, um Daten über Funktionen zur Manipulation zu übergeben. Zum Beispiel, eine, die ich oft benutze ist der wp_list_pages Filter. Ich benutze es, um Zeilenumbrüche aus der Seitenliste zu entfernen. Also hier ist, wie es funktioniert:
Zuerst definiere ich eine Funktion, die einen Parameter akzeptiert und nach der Arbeit zurückgibt:
%Vor%Dann füge ich den Filterhaken hinzu: add_filter ('wp_list_pages', 'my_list_pages_filter');
add_filter
sagt WordPress "Wenn die Funktion apply_filters
aufgerufen wird und das erste Argument 'wp_list_pages' ist, rufen Sie my_list_pages_filter
auf." Filter müssen mindestens einen Wert (beliebigen Typs: Zeichenfolge, Array, Ganzzahl usw.) senden und erwarten, dass die Funktion einen Wert zurückgibt.
Sie bieten Ihnen eine Möglichkeit, die Eingabe vor dem Zurücksenden zu manipulieren.
do_action
ist ein ganz anderer Haken. Um Informationen an Ihre Filterfunktion zu senden, machen Sie folgendes (aus Ihrem Beispiel):
Fügen Sie in Ihrer Datei functions.php Folgendes hinzu:
%Vor%Das ist eine ziemlich rudimentäre Verwendung von Filtern, aber es ist ein Anfang. Sie können wirklich eine Idee davon bekommen, was Sie mit Filtern mit dem gleichen Beispiel mit einigen Verbesserungen tun können:
%Vor%Chris, Du scheinst durch ein paar Dinge verwirrt zu sein:
es ist ein sehr schöner Artikel, aber ich muss trotzdem einen dummen Fehler machen ....
Ich versuche einige Elemente im WP3 + Navigationsmenü unter "Bildschirmoptionen" über diese "add_filter" Technik zu entfernen:
wp-admin / enthält / nav-menus.php:
%Vor%mytheme / function.php:
Es scheint, dass die ursprünglichen Funktionen nicht Teil einer CLASS sind:
%Vor%Aber als Ergebnis kann ich die ursprünglichen "Bildschirmoptionen" mit allen Elementen sehen. Wenn ich die Zeilen entferne: 'css-classes' = & gt; _ ('CSS Klassen'), 'xfn' = & gt; _ ('Verknüpfungsbeziehung (XFN)'), 'Beschreibung' = & gt; __('Beschreibung'), direkt in WP-Kern, alles sieht OK aus, also bin ich mir nicht sicher, dass es möglich ist, alle WP-Funktionen auf diese Weise zu überschreiben.
Vielen Dank für Ihren Rat. Mit freundlichen Grüßen, Milo
Ich habe hier einen Haken in der Vorlagendatei platziert:
%Vor%Der Hook wird gerade selbst in der Funktionsdatei ausgeführt:
%Vor%Mit meinem Filter versuche ich Klassen an diese Funktion zu übergeben.
%Vor%Dann bin ich wirklich verwirrt darüber, wie man den Filter schreibt ...
Tags und Links filter wordpress wordpress-theming