Ответы:
$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' );
,9999
так же add_action( 'wp_print_scripts', wpa54064_inspect_scripts', 9999 );
, иначе вы увидите сценарии, которые были исключены из файла functions.php
Есть ли какой-нибудь способ получить дескриптор $ для каждого сценария, который был поставлен в очередь?
Вы можете попробовать выполнить проверку $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
не предоставит полный список дескрипторов, как показано выше, если это то, что вам нужно. И не всегда возможно полагаться на сгруппированные зависимости, чтобы получить их.
$wp_scripts = wp_scripts();
может быть лучше, чем прямой доступ к глобалу, поскольку он будет инициализирован,$wp_scripts
если он не был установлен.