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


31

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

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

Спасибо!

Ответы:


49

Есть функция с именем wp_script_is( $handle, $list ). $listможет быть одним из:

  • 'зарегистрирован' - был зарегистрирован через wp_register_script()
  • 'очередь' - был поставлен в очередь через wp_enqueue_script()
  • «сделано» - напечатано
  • 'to_do' - будет напечатано

То же самое для всего этого wp_style_is().


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 работает так же.


1
Даун проголосовал за это из-за отсутствия проверки работоспособности, оставляющей возможность для фатальных ошибок.
Backie

2
@ Баки, но ты понимаешь, что это доказательство концепции?
fuxia

wp_script_is () - лучшее и более безопасное решение (Адам Бэкстрем)
chrisjlee
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.