wie: Auflistung aller hooks für z.B. 'wp_head'

  • Hallo,

    ich kam auf die Idee das es hilfreich sein kann einmal zu sehen wieviele und welche funktionen beim hook wp_head durchlaufen werden wenn z.B. die Startseite aufgerufen wird. Kann man das irgendwie anzeigen/auflisten lassen?! Jemand eine Idee?

    Ziel ist eben zu sehen das Funktion X von Plugin A und Funktion Y und Z von Plugin B jeweils einen hook für wp_head besitzen.

    Was natürlich etwas weiterhilft aber eben nicht so toll ist: Dateiübergreifend suchen nach "add_action('wp_head".

    Danke und gruß Stefan.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Du kannst beispielsweise in der do_action()-Funktion (wp-includes/plugin.php:299) eine Ausgabe per var-dump() machen.

    Um das ganze ein wenig übersichtlicher zu machen, kannst du prüfen ob das aktuelle $tag == 'wp_head' ist (wird so in wp_includes/general-template.php:1393 übergeben).

    Ich hoffe das genügt dir als Ansatz. ;-)

  • ein bischen im code gesucht und man sieht, das add_action() nichts anderes wie ein synonym für add_filter() ist.

    PHP
    function add_filter($tag, $function_to_add, $priority = 10, $accepted_args = 1) {
        global $wp_filter, $merged_filters;
    
    
        $idx = _wp_filter_build_unique_id($tag, $function_to_add, $priority);
        $wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add, 'accepted_args' => $accepted_args);
        unset( $merged_filters[ $tag ] );
        return true;
    }

    wie zu sehen, werden die entsprechenden Aktions-Funktionen, ebenso wie die Filter-Funktionen, in der php-Tabelle $wp_filter gespeichert. Diese, wie zu sehen mit

    PHP
    global $wp_filter;
    var_dump($wp_filter);

    ausgeben lassen und Du kannst die Gesamtheit der Informationen zu dieser Tabelle auslesen. Für spezifische Zugriffe auf einzelne Array-Elemente empfehle ich die entsprechenden Abschnitte der PHP-Dokumentation ;)

    vG

    Arno

    Feedback ist Wichtig!|FAQ|Rückfragen im Forum!|Wenn ich mal was vergesse.... einfach mal sagen...

  • gelöst.

    hey ihr 2,
    vielen Dank für eure Hilfe! Es funktioniert!

    arno "spezifische Zugriffe auf einzelne Array-Elemente": habe ich noch hinbekommen ohne in die Doku zu schauen ;)

    Für alle die das gleiche machen wollen:

    PHP
    <?php global $wp_filter;
    echo '<!-- <pre>';
    var_dump($wp_filter['wp_head']);
    echo "\n ############################################# \n";
    /* Um einfach nur zu schauen welche Funktionen aufgerufen werden ist die ausgabe mit print_r übersichtlicher: */
    print_r($wp_filter['wp_head']);
    echo '</pre> -->'; ?>

    Statt 'wp_head' kann man natürlich auch einen anderen Hook eintragen.

    Danke und lg.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!