Comment obtenir le descripteur $ pour tous les scripts mis en file d'attente?

18

Existe-t-il un moyen d'obtenir le descripteur $ pour chaque script mis en file d'attente?

Y a-t-il un tableau qui contient tous les descripteurs pour que je puisse le parcourir et faire quelque chose en utilisant chaque descripteur $?

trusktr
la source

Réponses:

25

le $wp_scriptsglobal contient toutes les données de script:

function wpa54064_inspect_scripts() {
    global $wp_scripts;
    foreach( $wp_scripts->queue as $handle ) :
        echo $handle;
    endforeach;
}
add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );
Milo
la source
5
À partir de WP 4.2.0 - $wp_scripts = wp_scripts();pourrait être mieux que d'accéder directement au global car il s'initialise $wp_scriptss'il n'a pas été défini.
jgraup
Vous devez ajouter une priorité ,9999comme add_action( 'wp_print_scripts', wpa54064_inspect_scripts', 9999 );, sinon vous verrez des scripts qui sont retirés de la file d'attente par le fichier functions.php
Ryszard Jędraszyk
2

Existe-t-il un moyen d'obtenir le descripteur $ pour chaque script mis en file d'attente?

Vous pouvez essayer d'inspecter $wp_scripts->queueun crochet spécifique, mais cela ne vous donnera pas une liste de toutes les poignées utilisées par WordPress, croyez-le ou non.

Par exemple, vous pouvez vous connecter wp_head, qui exécute l' wp_print_scriptsaction, pour obtenir une liste du $handlesthème Twenty Seventeen stock dans WP v4.7.5:

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

add_action( 'wp_head', 'get_enqueued_scripts' );

Et la liste de $handlesfrom $wp_scripts->groupsaffichera:

entrez la description de l'image ici

À ce stade, si vous comparez ce qui existe, $wp_scripts->queuevous ne verrez qu'un sous-ensemble de ce qui précède.

Par conséquent, même wp_print_scripts ne fournira pas une liste complète des descripteurs comme indiqué ci-dessus, si c'est ce que vous recherchez. Et il n'est pas possible de toujours compter sur des dépendances groupées pour les obtenir non plus.

Josh Habdas
la source