WordPress как на ладони
wordpress jino

wp_script_is() WP 2.8

Определяет был ли скрипт зарегистрирован или добавлен в очередь на вывод, или выведен на экран, или ожидает вывода.

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

✈ 1 раз = 0.000026с = очень быстро | 50000 раз = 0.09с = скорость света PHP 7.0.5, WP 4.5.2

Хуков нет.

Возвращает

Логические true или false, в зависимости от того выполняется условие или нет.

Использование

wp_script_is( $handle, $list );
$handle(строка) (обязательный)
Идентификатор (название) проверяемого скрипта. В нижнем регистре.
$list(строка)

Какого рода проверку проводить. Допускаются следующие значения:

  • registered - скрипт был зарегистрирован через функцию wp_register_script();
  • enqueued или queue - скрипт был добавлен в очередь на вывод;
  • done - скрипт уже обработан (был выведен на экран);
  • to_do - скрипт еще не был обработан (ожидает вывода на экран).

По умолчанию: 'enqueued'

Примеры

#1 Подключение скрипта с проверкой

Этот пример показывает как подключить скрипт /js/fluidvids.min.js, предварительно проверив, не был ли этот скрипт уже подключен и добавлен в очередь на вывод. Если скрипт уже добавлен в очередь, код ничего не сделает. Если скрипт еще не добавлен, то он будет подключен и добавлен в очередь на обработку:

if ( ! wp_script_is( 'fluid_vids', 'enqueued' ) ) {
	wp_register_script( 'fluid_vids', plugin_dir_url(__FILE__).'js/fluidvids.min.js');
	wp_enqueue_script( 'fluid_vids' );
}

Код wp script is: wp-includes/functions.wp-scripts.php WP 4.9

<?php
function wp_script_is( $handle, $list = 'enqueued' ) {
	_wp_scripts_maybe_doing_it_wrong( __FUNCTION__ );

	return (bool) wp_scripts()->query( $handle, $list );
}

Cвязанные функции

Из метки: script

Еще из метки: Условные теги (все)

Еще из раздела: Регистрация script и style

wp_script_is 2 комментария
  • Андрей

    По моему в условии надо проверять handle скрипта, а не имя файла
    if ( ! wp_script_is( 'fluidVids.js', 'enqueued' ) ) {
    По крайней мере у меня только по нему срабатывает.

    • Kama4662

      Ну это как бы и был ID, а сам скрипт называется fluidvids.min.js smile Но раз есть этот коммент значит пример так себе... Поэтому поправил пример, спасибо! thank_you

Здравствуйте, !

Ваш комментарий