Проверить, был ли скрипт/стиль добавлен в очередь или зарегистрирован
Возможно ли проверить, был ли скрипт или стиль зарегистрирован с помощью wp_register_script/_style или добавлен в очередь с помощью wp_enqueue_script/_style? Ни одна из этих функций не возвращает значение, и я совершенно не понимаю, как это сделать.
Мне нужно переключаться между разными функциями в зависимости от библиотек стилей и скриптов, которые я предлагаю.
Спасибо!
Существует функция под названием wp_script_is( $handle, $list ). Параметр $list может принимать одно из следующих значений:
- 'registered' — скрипт был зарегистрирован с помощью
wp_register_script() - 'queue' — скрипт был добавлен в очередь с помощью
wp_enqueue_script() - 'done' — скрипт уже был выведен на страницу
- 'to_do' — скрипт будет выведен на страницу
То же самое относится и к функции wp_style_is().
Проверьте $GLOBALS['wp_scripts']->registered для скриптов.
Пример
function is_enqueued_script( $script )
{
return isset( $GLOBALS['wp_scripts']->registered[ $script ] );
}
print (int) is_enqueued_script( 'l10n' );
$GLOBALS['wp_styles']->registered работает аналогичным образом.
Поставил минус из-за отсутствия проверок на корректность, что может привести к критическим ошибкам.
Backie