Функция wp_style_is()
используется для проверки, был ли определённый CSS-стиль зарегистрирован, добавлен в очередь или выведен на страницу. Эта функция помогает избежать дублирования подключения стилей и позволяет более гибко управлять стилями в WordPress.
wp_style_is( string $handle, string $status = ‘enqueued’ ): bool
- $handle (строка) — обязательный параметр, имя зарегистрированного файла стилей, который нужно проверить. Имя должно совпадать с тем, что использовалось при регистрации стиля через
wp_register_style()
или его подключение черезwp_enqueue_style()
. - $status (строка) — необязательный параметр, статус стиля, который проверяется. Возможные значения:
'registered'
— стиль был зарегистрирован, но еще не добавлен в очередь на вывод.'enqueued'
или'queue'
— стиль был добавлен в очередь на вывод.'to_do'
— стиль добавлен в очередь, но еще не выведен на страницу.'done'
— стиль был выведен на страницу.
Возвращаемое значение — true
, если стиль соответствует указанному статусу, и false
, если нет.
Пример 1: Проверка, добавлен ли стиль в очередь
Этот пример демонстрирует базовое использование wp_style_is()
для проверки, добавлен ли стиль в очередь перед его подключением.
add_action( 'wp_enqueue_scripts', 'theme_name_scripts' );
function theme_name_scripts() {
// Проверяем, добавлен ли стиль в очередь
if ( ! wp_style_is( 'style-name' ) ) {
wp_enqueue_style( 'style-name', get_stylesheet_uri() );
}
}
Здесь, если стиль с именем style-name
не был добавлен в очередь, он подключается через wp_enqueue_style()
. Это предотвращает повторное добавление одного и того же стиля.
Пример 2: Проверка статуса зарегистрированного стиля
В этом примере проверяется, был ли стиль зарегистрирован, но не добавлен в очередь.
add_action( 'wp_enqueue_scripts', 'register_and_enqueue_styles' );
function register_and_enqueue_styles() {
// Регистрируем стиль
wp_register_style( 'custom-style', get_template_directory_uri() . '/css/custom-style.css' );
// Проверяем, был ли стиль зарегистрирован
if ( wp_style_is( 'custom-style', 'registered' ) ) {
// Добавляем стиль в очередь
wp_enqueue_style( 'custom-style' );
}
}
Здесь стиль регистрируется, и только если он зарегистрирован, но еще не добавлен в очередь, его добавляют с помощью wp_enqueue_style()
.
Пример 3: Проверка стиля, выведенного на страницу
Этот пример демонстрирует проверку того, был ли стиль выведен на страницу.
add_action( 'wp_enqueue_scripts', 'check_if_style_done' );
function check_if_style_done() {
wp_enqueue_style( 'theme-style', get_stylesheet_uri() );
// Проверяем, был ли стиль выведен на страницу
if ( wp_style_is( 'theme-style', 'done' ) ) {
echo 'Стиль уже выведен на страницу';
} else {
echo 'Стиль еще не был выведен';
}
}
Этот код сначала подключает основной стиль темы, а затем проверяет, был ли этот стиль уже выведен на страницу.
Примечания
- Функция
wp_style_is()
работает с зарегистрированными стилями. Если вы пытаетесь проверить стиль, который не был зарегистрирован или добавлен в очередь, функция вернетfalse
. - Статус
'enqueued'
является значением по умолчанию для проверки, был ли стиль добавлен в очередь на вывод. - В старых версиях WordPress (например, в версии 3.1) использование
'enqueued'
в качестве значения параметра$status
может вызывать предупреждения и ошибки при строгом режиме PHP.
Заключение
Функция wp_style_is()
— это полезный инструмент для проверки статуса стилей в WordPress. Она помогает избежать повторного подключения стилей, контролировать их вывод на страницу и гарантировать, что стили загружаются корректно.