Kann meine Funktion "add_action" den Namen des Hooks kennen, der sie aufruft?


7

Viele Haken:

add_action('thesis_hook_after_comment', 'pj_time');
add_action('thesis_hook_after_comments', 'pj_time');
add_action('thesis_hook_after_comment_box', 'pj_time');
add_action('thesis_hook_after_comment_meta', 'pj_time');
add_action('thesis_hook_after_content', 'pj_time');
add_action('thesis_hook_after_content_area', 'pj_time');
add_action('thesis_hook_after_content_box', 'pj_time');
add_action('thesis_hook_after_footer', 'pj_time');
add_action('thesis_hook_after_header', 'pj_time');
add_action('thesis_hook_after_headline', 'pj_time');
// etc.

Wie kann man function pj_time()wissen, welcher Haken es genannt hat? Gibt es eine globale Variable oder etwas, das mir sagt, an welchem ​​Haken wir sind? Pj_time () könnte also etwas ausgeben wie: "Der Hook (Name des Hooks hier) rockt."

Ich weiß auch nicht, in welcher Reihenfolge die Hooks heißen, sie sind hier nur in alphabetischer Reihenfolge. Andernfalls könnte ich einen Zähler verwenden, um herauszufinden, wie viele Haken wir bisher gemacht haben, und den Namen des Hakens auf diese Weise bestimmen.

Ich möchte also wissen, ob es möglich ist, den Namen des Hakens zu erhalten. Vielen Dank.


Hier ist die Quelle dessen, was ich versucht habe pjbrunet.com/…
PJ Brunet

Antworten:


8
function pj_time () {
    echo current_filter();
}

Einfacher als ich dachte ;-)

http://codex.wordpress.org/Function_Reference/current_filter


+1 Eine weitere coole Sache ist, dass Sie damit auch Funktionen und Methoden entfernen können: remove_function( current_filter(), __FUNCTION__ );und remove_function( current_filter(), array( $this, __FUNCTION__ ) );. Das einzige Problem ist, dass Sie die Priorität trotzdem extrahieren müssen, wenn dies nicht der Fall ist 10.
Kaiser

Sicher. Wir verwenden es in unserem WCM Language Switcher Plugin .
Kaiser

1
Alter, PJ Brunet, du bist großartig. Dieses kleine Stück Code hat mich gerade gerettet. Ich wollte einen Weg finden, einen ACF-Repeater zu erstellen, mit dem Sie den Abschnitt der Seite auswählen können, und dann eine Reihe von Aktions-Hooks erstellen, um die Abschnitte auszugeben. Aber ich konnte nicht herausfinden, wie ich die Funktion dazu bringen konnte, den Haken herauszufinden, an dem sie war. Dies hat den Trick perfekt gemacht. Du bist der König.
rgb_life
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.