Функция wp_script_is()
используется для проверки, был ли скрипт зарегистрирован, добавлен в очередь на вывод или уже выведен на экран. Это полезно, когда нужно избежать дублирования подключений одного и того же скрипта или проверить статус определённого скрипта перед его использованием.
wp_script_is( string $handle, string $status = 'enqueued' ): bool
- $handle (строка, обязательный) — Имя скрипта, которое было использовано при его регистрации или добавлении в очередь.
- $status(строка, необязательный) — Статус скрипта, который нужно проверить. По умолчанию
'enqueued'
. Возможные значения:'enqueued'
— Скрипт добавлен в очередь на вывод.'registered'
— Скрипт был зарегистрирован.'queue'
— Скрипт в очереди на вывод.'to_do'
— Скрипт ожидает вывода на экран.'done'
— Скрипт уже был выведен на экран.
Возвращаемое значение
Функция возвращает true
, если скрипт соответствует указанному статусу, и false
— в противном случае.
Пример 1: Проверка статуса скрипта перед его добавлением
Этот пример проверяет, добавлен ли скрипт fluidVids.js
в очередь. Если скрипт уже в очереди, ничего не происходит. В противном случае, скрипт сначала регистрируется, а затем добавляется в очередь.
$handle = 'fluidVids.js';
$list = 'enqueued';
if (wp_script_is( $handle, $list )) {
return;
} else {
wp_register_script( 'fluidVids.js', plugin_dir_url(__FILE__) . 'js/fluidvids.min.js' );
wp_enqueue_script( 'fluidVids.js' );
}
Этот код полезен для предотвращения дублирующего подключения одного и того же скрипта в различных частях темы или плагина.
Пример 2: Проверка, был ли скрипт уже выведен на экран
Иногда нужно проверить, был ли скрипт уже выведен на экран, чтобы избежать повторного вывода. Для этого можно использовать статус 'done'
.
if ( ! wp_script_is( 'jquery', 'done' ) ) {
// Если jQuery еще не выведен, добавить его в очередь
wp_enqueue_script( 'jquery' );
}
Этот пример проверяет, был ли скрипт jQuery уже загружен на страницу. Если нет, он будет добавлен в очередь.
Пример 3: Проверка зарегистрированного скрипта
В этом примере проверяется, был ли скрипт my-script.js
зарегистрирован с помощью wp_register_script()
.
if ( wp_script_is( 'my-script', 'registered' ) ) {
// Если скрипт зарегистрирован, подключаем его
wp_enqueue_script( 'my-script' );
}
Если скрипт уже зарегистрирован, он будет добавлен в очередь на вывод.
Пример 4: Проверка скрипта, ожидающего вывода на экран
Если вы хотите проверить, находится ли скрипт в состоянии ожидания вывода (то есть был добавлен в очередь, но еще не выведен), используйте статус 'to_do'
.
if ( wp_script_is( 'my-custom-script', 'to_do' ) ) {
// Скрипт ожидает вывода на экран
echo 'Скрипт находится в очереди на вывод';
}
Это полезно, если вам нужно точно знать, когда скрипт будет выведен на экран.
Пример 5: Проверка скрипта в очереди
Этот пример проверяет, находится ли скрипт в очереди на вывод, используя статус 'queue'
.
if ( wp_script_is( 'example-script', 'queue' ) ) {
// Скрипт находится в очереди на вывод
echo 'Скрипт находится в очереди на вывод';
}
Возможные статусы скрипта
registered
— Скрипт был зарегистрирован с помощьюwp_register_script()
.enqueued
— Скрипт был добавлен в очередь на вывод с помощьюwp_enqueue_script()
.queue
— Скрипт находится в очереди на вывод, но еще не был выведен.to_do
— Скрипт ожидает вывода на экран.done
— Скрипт был выведен на экран.
Заключение
Функция wp_script_is()
— это полезный инструмент для проверки состояния скриптов в WordPress. Она помогает избежать конфликтов при повторном подключении одного и того же скрипта, позволяет контролировать статус скриптов и эффективно управлять их загрузкой.