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 $?

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' );

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.