Как получить $handle для всех подключенных скриптов?

3 июн. 2012 г., 05:37:26
Просмотры: 14.8K
Голосов: 26

Есть ли способ получить $handle для каждого скрипта, который был подключен (enqueued)?

Существует ли массив, содержащий все handles, чтобы я мог перебрать его и выполнить какие-то действия с каждым $handle?

0
Все ответы на вопрос 2
2
34

глобальная переменная $wp_scripts содержит все данные о скриптах:

function wpa54064_inspect_scripts() {
    global $wp_scripts;
    foreach( $wp_scripts->queue as $handle ) :
        echo $handle;
    endforeach;
}
add_action( 'wp_print_scripts', 'wpa54064_inspect_scripts' );
3 июн. 2012 г. 06:04:58
Комментарии

Начиная с WP 4.2.0 - $wp_scripts = wp_scripts(); может быть лучше, чем обращение к глобальной переменной напрямую, так как это инициализирует $wp_scripts, если он еще не был установлен.

jgraup jgraup
30 авг. 2016 г. 17:33:49

Вам следует добавить приоритет ,9999, например add_action( 'wp_print_scripts', wpa54064_inspect_scripts', 9999 );, иначе вы будете видеть скрипты, которые были удалены из очереди файлом functions.php

Ryszard Jędraszyk Ryszard Jędraszyk
6 апр. 2019 г. 17:43:04
0

Есть ли способ получить $handle для каждого подключенного скрипта?

Вы можете попробовать проверить $wp_scripts->queue на определённом хуке, но это не даст вам полного списка всех хэндлов, используемых WordPress, как бы странно это ни звучало.

Например, вы можете подключиться к хуку wp_head, который запускает действие wp_print_scripts, чтобы получить список $handles для стандартной темы Twenty Seventeen в WP v4.7.5:

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

add_action( 'wp_head', 'get_enqueued_scripts' );

И список $handles из $wp_scripts->groups выведет:

Список хэндлов подключённых скриптов

Если на этом этапе сравнить с содержимым $wp_scripts->queue, вы увидите только подмножество из показанного выше.

Таким образом, даже wp_print_scripts не предоставит полный список хэндлов, как показано выше, если это то, что вам нужно. И не всегда можно полагаться на групповые зависимости, чтобы их получить.

7 июн. 2017 г. 12:37:49