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

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