Ответы:
$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если он не был установлен.