Ich bin auf diesen Code-Typ in einem Plugin oder Theme gestoßen, in dem apply_filter
verwendet wird, ohne dass ein vorhandener filter
oder add_filter
vorhanden ist.
In diesem Fall, in dem apply_filters
ohne Filter verwendet wird, müssen Sie die Funktion erneut aufrufen, wo Sie sie ausführen möchten. Zum Beispiel im Header eines Themes.
Im Folgenden finden Sie ein Beispiel für die Verwendung von Apply Filters in einer Funktion, die erneut in der header.php
aufgerufen wird.
if ( ! function_exists( 'header_apply_filter_test' ) ) {
function header_apply_filter_test() {
$filter_this_content = "Beispielinhalt zum Filtern";
ob_start();
echo $filter_this_content;
$output = ob_get_clean();
echo apply_filters( 'header_apply_filter_test', $output );//hier verwendet
}
}
Jetzt müssten Sie in der Datei header.php
diese Funktion aufrufen, da sie nirgendwo angeschlossen ist. Also, in diesem Fall würden Sie die Funktion wie folgt aufrufen, um die Ausgabe im Header anzuzeigen:
Sie könnten diesen Code auch mit einem Hook schreiben und er würde dasselbe tun, d.h. die Ausgabe im Header anzeigen.
add_filter('wp_head', 'header_apply_filter_test');
if ( ! function_exists( 'header_apply_filter_test' ) ) {
function header_apply_filter_test() {
$filter_this_content = "Beispielinhalt zum Filtern";
ob_start();
echo $filter_this_content;
$output = ob_get_clean();
echo $output;
}
}
Bei dieser zweiten Option hätten Sie immer noch die Möglichkeit, apply_filters an anderer Stelle zu verwenden, um die Rückruffunktion header_apply_filter_test()
aufzurufen, da der Filter jetzt existiert.
Also ist meiner Ansicht nach der springende Punkt ein Anwendungsfall, da beide Ansätze funktionieren!