Ich fülle meinen Kopf mit add_filter

Das ist eine sehr allgemeine Frage, die ich wirklich erforscht habe. Vielleicht bin ich nur dumm, aber ich kann nicht ganz bekommen, wenn ich einen Filter verwenden kann. Nach einigem Herumspielen scheint es, dass ich irgendeine function in den coredateien übernehmen kann, diese als den Filternamen übergebe, und das zweite Argument kann ich durch meine eigene function in der functions.php oder der Plugin-Datei ersetzen. Ist das korrekt? Kann ich irgendetwas daran ändern?

Ich habe versucht, einige Felder auf der Benutzerprofilseite zu ändern, die saugt, weil einige geändert werden können, und einige können nicht, da das PHP und das HTML nicht von einer function oder class kommen, mit der ich arbeiten kann – es scheint bestimmte Dinge kann nur geändert werden, indem man die coredateien hackt, was ich nicht vorhabe!

Also, zusammenfassend, kann mir bitte jemand eine sehr kurze und süße Erklärung geben, warum und wann ich eine Aktion oder einen Filter verwenden würde. Das ist zu einer Hürde geworden, über die ich nicht hinwegkomme! Vielen Dank, Dan.

Update: Beispielcode?

function get_stylesheet_directory() { $stylesheet = get_stylesheet(); $theme_root = get_theme_root( $stylesheet ); $stylesheet_dir = "$theme_root/$stylesheet"; return apply_filters( 'stylesheet_directory', $stylesheet_dir, $stylesheet, $theme_root ); } 

Solutions Collecting From Web of "Ich fülle meinen Kopf mit add_filter"

Filter und Aktionen sind unter der Haube ähnlich, aber mit einem wichtigen Unterschied-

Aktionen ermöglichen es Ihnen, etwas zu tun, wenn ein Ereignis eintritt – WordPress macht etwas und führt eine Aktion aus, damit Sie Ihr eigenes Ding machen können. Eine function, die an eine Aktion angehängt ist, kann eine Ausgabe erzeugen oder auch nicht, aber sie gibt niemals einen Wert zurück

Mithilfe von Filtern können Sie bestimmte Daten ersetzen oder ändern . WordPress hat einige Daten, die es in einer function verwendet, aber bevor es verwendet wird, wendet es einen Filter auf diesen Wert an, damit Sie ihn ändern können. Es ist im Allgemeinen sicher zu sagen, dass ein Filter etwas zurückgibt.

Ich kann jede function in den coredateien übernehmen, diese als den Filternamen übergeben, und das zweite Argument kann ich durch meine eigene function in der functions.php oder der Plugin-Datei ersetzen.

Sie können nicht willkürlich einen functionsnamen auswählen und ihm einen Filter hinzufügen, obwohl dies, wie Sie herausgefunden haben, der Fall zu sein scheint, weil WordPress bequemerweise viele Aktionen benannt hat, die den functionsnamen entsprechen, die diese Aktionen enthalten.

Sie können nur einen Filter hinzufügen, in dem der Code einen Aufruf von apply_filters enthält, der an diesen Tag apply_filters .

Sie können nur eine Aktion hinzufügen, bei der der Code einen Aufruf von do_action s enthält, der an dieses Tag do_action .

Die Faustregel, der ich folge, ist:

  • Verwenden Sie add_filter() wenn Sie einen Text, der ausgegeben (ausgegeben?) Wird, an den Benutzerbildschirm ändern wollen. So können Sie Dinge wie the_content , the_title , wp_title und so weiter filtern.
  • Verwenden Sie add_action() wenn Sie eine andere Aufgabe ausführen möchten, z. B. echo() zusätzlichen Text hinzufügen, eine globale Variable ändern, eine Abfrage ändern usw.

Beachten Sie, dass die Listen der Filter und Aktions-Hooks des Codex, obwohl sie ein guter Ausgangspunkt sind, bei weitem nicht vollständig sind. Vielleicht möchten Sie auf Websites wie http://wpseek.com/ suchen, wenn Sie etwas esoterischer brauchen.