Wie erhalte ich das $ -Handle für alle in die Warteschlange gestellten Skripte?


18

Gibt es eine Möglichkeit, das $ -Handle für jedes in die Warteschlange gestellte Skript abzurufen?

Gibt es ein Array, das alle Handles enthält, so dass ich es durchlaufen und mit jedem $ -Handle etwas tun kann?

Antworten:


25

Das $wp_scriptsGlobal enthält alle Skriptdaten:

function wpa54064_inspect_scripts() {
    global $wp_scripts;
    foreach( $wp_scripts->queue as $handle ) :
        echo $handle;
    endforeach;
}
add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );

5
Ab WP 4.2.0 - ist $wp_scripts = wp_scripts();möglicherweise besser als der direkte Zugriff auf das globale Objekt, da es initialisiert wird, $wp_scriptswenn es nicht festgelegt wurde.
JGRAUP

Sie sollten Priorität hinzufügen ,9999wie add_action( 'wp_print_scripts', wpa54064_inspect_scripts', 9999 );, sonst sehen Sie Skripte, die von functions.php-Datei in die Warteschlange gestellt werden
Ryszard Jędraszyk

2

Gibt es eine Möglichkeit, das $ -Handle für jedes in die Warteschlange gestellte Skript abzurufen?

Sie könnten versuchen, $wp_scripts->queuean einem bestimmten Hook zu inspizieren, aber es wird Ihnen keine Liste aller von WordPress verwendeten Handles angezeigt, ob Sie es glauben oder nicht.

Sie können sich zum Beispiel an wp_headdie wp_print_scriptsAktion anschließen, um eine Liste $handlesfür das Thema "Stock Twenty Seventeen" in WP 4.7.5 zu erhalten:

function get_enqueued_scripts () {
    $scripts = wp_scripts();
    var_dump( array_keys( $scripts->groups ) );
}

add_action( 'wp_head', 'get_enqueued_scripts' );

Und die Liste $handlesvon $wp_scripts->groupswird ausgegeben:

Bildbeschreibung hier eingeben

Wenn Sie zu diesem Zeitpunkt vergleichen, was in vorhanden ist, sehen $wp_scripts->queueSie nur eine Teilmenge der oben genannten.

Daher wird auch wp_print_scripts keine vollständige Liste der oben gezeigten Punkte bereitgestellt, wenn Sie danach suchen. Und es ist auch nicht möglich, sich immer auf gruppierte Abhängigkeiten zu verlassen, um sie zu erhalten.

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.