Як отримати ручку $ для всіх скриптів, що додаються?


18

Чи є спосіб отримати ручку $ для кожного скрипту, який було додано?

Чи є якийсь масив, який містить усі ручки, щоб я міг пройти через нього і зробити щось, використовуючи кожну $ ручку?

Відповіді:


25

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

5
Станом на WP 4.2.0 - $wp_scripts = wp_scripts();може бути кращим, ніж отримати доступ до глобальної мережі безпосередньо, оскільки вона буде ініціалізована, $wp_scriptsякщо вона не була встановлена.
jgraup

Вам слід додати пріоритет, ,9999як add_action( 'wp_print_scripts', wpa54064_inspect_scripts', 9999 );, інакше ви побачите сценарії, відмінені файлом function.php
Ryszard Jędraszyk

2

Чи є спосіб отримати ручку $ для кожного скрипту, який було додано?

Ви можете спробувати перевірити $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 не надаватиметься повний перелік ручок, як показано вище, якщо ви це вже хочете. І не завжди можна покластися на згруповані залежності, щоб їх отримати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.