WordPress-Funktionen add_filter vs. add_action, die Grundlagen.
Veröffentlicht: 2021-08-24Offenlegung: Dieser Beitrag enthält Affiliate-Links. Ich erhalte möglicherweise eine Vergütung, wenn Sie auf Links zu Produkten in diesem Beitrag klicken. Eine Erläuterung meiner Werberichtlinie finden Sie auf dieser Seite . Danke fürs Lesen!
Inhalt
- Was sind die WordPress-Funktionen add_filter vs. add_action?
- Also, was genau ist ein „Hook“ in WordPress?
- Was ist der Unterschied zwischen Hooks, Filtern und Aktionen?
- Was ist der Unterschied zwischen do_action und add_action in WordPress?
- Was ist der Unterschied zwischen Aktionshaken und Filterhaken?
- Was machen Filter in WordPress?
- Was machen Aktionen in WordPress?
- Kann ich eine add_action vor add_filter verwenden, wenn ich ein WordPress-Plugin optimiere?
- Was ist also der wirkliche Unterschied zwischen add_filter-Hooks und add_action-Hooks in WordPress?
Was sind die WordPress-Funktionen add_filter vs. add_action?
Haben Sie jemals ein Plugin oder ein Design erhalten, das perfekt wäre, wenn Sie nur ein oder zwei Änderungen daran vornehmen könnten? Für diese beiden Optimierungen müssen Sie jedoch nur ein wenig Code hinzufügen, vielleicht sogar einen Shortcode.
Aber bevor Sie dies tun, müssen Sie die grundlegenden Konzepte von add_filter vs. add_action verstehen, die Unterschiede und wie sie in WordPress funktionieren, bevor Sie ein fast perfekt codiertes Plugin oder Design in ein komplettes Durcheinander verwandeln.
Eine „add_action“ in WordPress ist das, was Sie verwenden, um einen Trigger-„Hook“ zu erstellen. Wenn etwas passiert, dann tue etwas anderes.
Ein „add_filter“ wird verwendet, um Daten „einzuhängen“, dh zu ändern/ersetzen. Wenn beispielsweise [some-code] vorhanden ist, ändern Sie ihn in some-other-expanded-code.
Der „Hook“ ist eine „Funktion“ oder „Methode“ für einen bestimmten Filter oder eine Aktion. Mehr zu „Haken“ weiter unten.
WordPress bietet Filter-Hooks, damit Plugins verschiedene Arten interner Daten während der Laufzeit ändern können. Ein Plugin kann Daten ändern, indem es einen Callback an einen Filter-Hook bindet. Wenn der Filter später angewendet wird, wird jeder gebundene Rückruf in der Reihenfolge seiner Priorität ausgeführt und erhält die Möglichkeit, einen Wert zu ändern, indem ein neuer Wert zurückgegeben wird.
- Aktionen sind jene PHP-Funktionen, die die Ausgabe ausführen.
- Filter sind jene PHP-Funktionen, die die Ausgabe zurückgeben.
Wir können jedes Plugin erweitern, das die Aktionen und Filter verwendet, ohne ihren Code zu ändern. Durch das Hinzufügen von Filtern und Aktionen in unserem eigenen Design oder Plugin. Lassen Sie uns näher darauf eingehen, wie diese in WordPress funktionieren.
Also, was genau ist ein „Hook“ in WordPress?
„ Hooks sind eine Möglichkeit für einen Codeabschnitt, mit einem anderen Codeabschnitt an bestimmten, vordefinierten Stellen zu interagieren/zu modifizieren. Sie bilden die Grundlage dafür, wie Plugins und Themes mit WordPress Core interagieren, aber sie werden auch ausgiebig vom WordPress Core selbst verwendet.
Es gibt zwei Arten von Hooks: Aktionen und Filter. Um beides zu verwenden, müssen Sie eine benutzerdefinierte Funktion schreiben, die als „ Callback “ bekannt ist, und sie dann mit einem WordPress-Hook für eine bestimmte Aktion oder einen bestimmten Filter registrieren. ” Quelle: WordPress.org .
Was ist der Unterschied zwischen Hooks, Filtern und Aktionen?
Wie oben erwähnt, ist „Hooks“ im Grunde der Sammelbegriff für Filter und Aktionen. Beide sollen das normale Verhalten von Funktionen ändern.
Aus programmtechnischer Sicht gibt es keinen großen Unterschied, wie Sie daran sehen können, dass das Hinzufügen einer „Aktion“ im WordPress-Quellcode dasselbe ist wie das Hinzufügen eines „Filters“.
Der Unterschied besteht darin, wie sie verwendet werden. Sie verwenden eine „Aktion“, um das Verhalten einer Funktion vollständig zu ändern oder einer bestehenden Funktion etwas hinzuzufügen.
Sie verwenden einen „Filter“, um das Ergebnis einer Funktion oder einer Variablen zu ändern.
Was ist der Unterschied zwischen do_action und add_action in WordPress?
Eine „do_action“ registriert einen „Action-Hook“, während „add_action“ dem registrierten Hook eine Callback-Funktion hinzufügt.
Was ist der Unterschied zwischen Aktionshaken und Filterhaken?
Aktionshaken
„Aktions-Hooks“ sind für die Verwendung vorgesehen, wenn der WordPress-Kern oder ein Plugin oder Thema Ihnen die Möglichkeit gibt, Ihren Code an einer bestimmten Stelle in dessen Kern einzufügen, um eine bestimmte Aufgabe oder „Aktion“ auszuführen.
Filterhaken
„Filter Hooks“ verhalten sich sehr ähnlich wie „Action Hooks“, aber ihre beabsichtigte Verwendung besteht darin, einen Wert zu empfangen und möglicherweise eine modifizierte Version des Werts zurückzugeben.
Ein „Filter-Hook“ könnte auch genau wie ein „Action-Hook“ verwendet werden, dh um eine globale Variable zu ändern oder etwas HTML zu generieren, vorausgesetzt, Sie müssen dies tun, wenn der Hook aufgerufen wird.
Was machen Filter in WordPress?
Ein „Filter“ nimmt die empfangenen Informationen, modifiziert sie und gibt sie zurück. Mit anderen Worten, es filtert etwas und gibt es zur weiteren Verwendung an den Hook zurück.
Daher wird ein Filter verwendet, um etwas auf eine bestimmte Weise zu ändern, damit die Änderung später vom Code verwendet wird.
Was machen Aktionen in WordPress?
Eine „Aktion“ nimmt die Informationen, die sie erhält, führt alle Anweisungen aus, die ihr in ihrer Codierung gegeben werden, und gibt dann nichts zurück. Im Grunde wirkt es auf etwas und wird dann beendet, wobei nichts an den aufrufenden Hook zurückgegeben wird.
Eine Aktion unterbricht den Codefluss, um etwas zu tun, und kehrt dann zum normalen Fluss zurück, ohne etwas zu ändern.
Wo also „Filter“ Sätze von Parametern oder Anweisungen sind, sind „Aktionen“ die Ausführung von Anweisungen.
Kann ich eine add_action vor add_filter verwenden, wenn ich ein WordPress-Plugin optimiere?
Es spielt grundsätzlich keine Rolle, in welcher Reihenfolge Sie add_action() und add_filter() verwenden.
Entscheidend ist die Reihenfolge, in der die entsprechenden do_action() und apply_filters() aufgerufen werden.
Wenn also beispielsweise „apply_filters“ ('wp_insert_post_data') vor der „do_action“('save_post') ausgeführt wird, dann wird es nicht funktionieren. Sie müssen sich einen anderen Weg überlegen, um die gewünschten Ergebnisse zu erzielen.
Was ist also der wirkliche Unterschied zwischen add_filter-Hooks und add_action-Hooks in WordPress?
In Wirklichkeit sind „Filter Hooks“ so ziemlich eine Obermenge von „Action Hooks“. Die „Filter Hooks“ können alles, was die „Action Hooks“ können und noch ein bisschen mehr. Obwohl der Entwickler nicht dafür verantwortlich ist, einen Wert mit einem „Aktions-Hook“ zurückzugeben, was er mit einem „Filter-Hook“ tut.
„Filter Hooks“ definieren im Wesentlichen die Parameter einer Aufgabe, während „Action Hooks“ Aufgaben ausführen. Weitere Informationen zu den Unterschieden zwischen „add_filter“-Hooks und „add_action“-Hooks findest du in dieser offiziellen WordPress-Dokumentation im Entwicklerbereich auf WordPress.org.