Ich bin im Begriff, mein erstes WordPress-Projekt zu starten, und ich habe die Aufgabe, angepassten Kerncode, der den Kern überschreibt, in separate Funktionen / Dateien zu verschieben (auf diese Weise ist die Wartung bei zukünftigen Upgrades einfacher.
Ich habe recherchiert und es sieht aus wie add_filter
und apply_filter
und do_action
und add_action
scheint der richtige Weg zu sein. Ich bin mir immer noch nicht sicher, wie sie funktionieren. Verwenden Sie diese Methoden, um Kernmethoden zu überschreiben? Ich bin verwirrt, weil ich add_filter
das Wort benutze, add
wenn ich das Gefühl habe, dass es eher im Sinne von replace
oder ist overwrite
(es sei denn, ich verstehe das falsch).
Ich habe gerade gelesen , die erste Antwort auf diese (die über die Tacos)
Der Autor hat also drei Schritte ausgeführt, um die Verwendung von add_filter zu beschreiben:
Schritt 1: Ein statischer Wert für die Variable $ taco
<?php $taco = 'chicken'; ?>
Schritt 2:
<?php
$taco = apply_filters( 'get_taco', 'chicken' );
?>
Schritt 3:
<?php
add_filter( 'get_taco', 'my_special_order' );
function my_special_order( $content ) {
return 'shredded beef';
}
?>
In dieser Situation wird also apply_filter
nur eine dynamische Methode im laufenden Betrieb erstellt und die chicken
Zeichenfolge zurückgegeben? Oder wird hier davon ausgegangen, dass es eine Kernmethode von WordPress gibt get_taco
und dass die Verwendung apply_filter
dazu beitragen würde, die ursprüngliche Funktionalität zu überschreiben?
Kannst du auch nur apply_filter
etwas, das du bearbeitet hast add_filter
? Mit anderen Worten, würde es apply_filter('get_taco');
nicht funktionieren, wenn ich add_filter('get_taco', 'my_special_order');
UND nicht zuerst definieren würde function my_special_order ($content) ...
?
Füge ich diese Filter in meine Datei functions.php ein? Es tut mir leid, dass ich Sie mit Fragen bombardiert habe. Ich komme von Ruby on Rails, daher bin ich in WordPress völlig ahnungslos.
Ich denke, du hast es ein bisschen falsch verstanden.
Filter und Aktionen sind Funktionen, die Sie Hooks "zuweisen". An vielen Stellen ruft WordPress auf
do_action
oderapply_filter
funktioniert. Der erste Parameter dieser Funktionen ist der Hook-Name.So zum Beispiel, wenn Sie sehen
Dies bedeutet, dass alle Aktionen, die dem 'blabla'-Hook zugewiesen sind, aufgerufen werden.
add_filter
undadd_action
überschreibt nichts. Es macht genau das, was es sagt - es weist Ihre Funktion einem bestimmten Haken zu.Ihr Schritt 2. wendet also Filter
get_taco
auf statischen Wert anchicken
. Und mit Filter anwenden meine ich, dass es alle Funktionen aufruft, die demget_taco
Hook zugewiesen sind .Ihr Schritt 3. erstellt eine neue Funktion
my_special_order
und weist sie demget_taco
Hook zu. Wenn also einapply_filter('get_taco')
Aufruf erfolgt, wird Ihre Funktion aufgerufen.Wenn einem bestimmten Hook kein Filter / keine Aktion zugewiesen ist, wird nichts unternommen.
Weitere Informationen zu diesem Thema finden Sie hier: http://codex.wordpress.org/Plugin_API
quelle