Функция 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. Она помогает избежать повторного подключения стилей, контролировать их вывод на страницу и гарантировать, что стили загружаются корректно.
