Frage zu Hooks und folgendem Funktionsaufruf?

    • 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

  • Ich kann Deine Frage nicht wirklich beantworten, denn wenn ich das richtig verstehe, wird diese Funktion im Plugin WP-PageNavi definiert, welches ich bislang nicht verwende. Mit function_exists wird jedenfalls überprüft, ob die Funktion wp_pagenavi definiert wurde und existiert und nur wenn diese Funktion existiert, wird die Funktion aufgerufen. Existiert die Funktion nicht, wird diese auch nicht aufgerufen.

    PHP
    <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
  • In der wp-includes/plugin.php ist die Funktion add_action definiert, die übernimmt für $tag den String 'thesis_hook_container_add_pagenavi_bottom' als Wert und für $function_to_add den String 'pagination_below' und ruft bei der Rückgabe die Funktion add_filter auf, die nun den String 'pagination_below' in der globalen Variable $wp_filter speichert.

    In wp-includes/plugin.php:

    PHP
    function add_action($tag, $function_to_add, ...) {
        return add_filter($tag, $function_to_add, ...);
    }
    
    
    function add_filter( $tag, $function_to_add, ...) {
        global $wp_filter, $merged_filters;
        ...
        $wp_filter[$tag][$priority][$idx] = array('function' => $function_to_add,...);
    }

    Ein kleiner Test, um mit einem Plugin den Inhalt von $wp_filter im Footer auszugeben. Die Funktion "meine_Aktionen_und_Filter" ist nun im Array von $wp_filter enthalten:


    Deine nächste Frage sollte nun sein, wie wird der Inhalt von $wp_filter weiter verarbeitet.

Jetzt mitmachen!

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