Проверить, был ли скрипт/стиль добавлен в очередь или зарегистрирован

3 мар. 2011 г., 18:00:15
Просмотры: 16.9K
Голосов: 35

Возможно ли проверить, был ли скрипт или стиль зарегистрирован с помощью wp_register_script/_style или добавлен в очередь с помощью wp_enqueue_script/_style? Ни одна из этих функций не возвращает значение, и я совершенно не понимаю, как это сделать.

Мне нужно переключаться между разными функциями в зависимости от библиотек стилей и скриптов, которые я предлагаю.

Спасибо!

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

Существует функция под названием wp_script_is( $handle, $list ). Параметр $list может принимать одно из следующих значений:

  • 'registered' — скрипт был зарегистрирован с помощью wp_register_script()
  • 'queue' — скрипт был добавлен в очередь с помощью wp_enqueue_script()
  • 'done' — скрипт уже был выведен на страницу
  • 'to_do' — скрипт будет выведен на страницу

То же самое относится и к функции wp_style_is().

9 мар. 2011 г. 16:14:36
3
11

Проверьте $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 работает аналогичным образом.

3 мар. 2011 г. 20:41:17
Комментарии

Поставил минус из-за отсутствия проверок на корректность, что может привести к критическим ошибкам.

Backie Backie
4 мар. 2011 г. 10:49:19

@Backie, но ты же понимаешь, что это просто proof of concept?

fuxia fuxia
4 мар. 2011 г. 13:59:06

wp_script_is() — более надежное и безопасное решение (Adam Backstrom` )

chrisl-921fb74d chrisl-921fb74d
4 авг. 2011 г. 17:26:56