is_active_sidebar()
Проверяет используется ли указанная панель виджетов (область для виджетов, сайдбар). Сработает если в области для виджетов есть хоть один виджет. Условный тег.
Проверяет активен ли сайдбар (добавлены ли в указанную область какие-либо виджеты).
Чтобы проверить поддерживает ли тема функцию виджетов и есть ли хоть одна активная панель с виджетами, используйте функцию is_dynamic_sidebar().
Если нужно проверить активен ли конкретный виджет, а не панель виджетов, используйте функцию is_active_widget()
Хуки из функции
Возвращает
true|false
. Возвращает true, если хоть один виджет добавлен. Вернет false, если сайдбар не имеет ни одного виджета.
Использование
if( is_active_sidebar( $index ) ){ // код }
- $index(строка/число) (обязательный)
- Название панели виджетов, области виджетов (сайдбара), ID панели или порядковый номер. Если передано число, то функция ищет область с идентификатором
sidebar-$index
.
Примеры
#1 Определим активен ли виджет
Выведем на экран различный текст, в зависимости от того, активен виджет или нет:
if ( is_active_sidebar(1) ) { echo "Сайдбар 1 имеет виджеты."; } else { echo "Сайдбар 1 пустой."; };
#2 Только не пустая панель виджетов
Выведем панель виджетов 'left-sidebar' в шаблоне, только если для нее установлен хотя бы один виджет:
<?php if ( is_active_sidebar( 'left-sidebar' ) ){ ?> <ul id="sidebar"> <?php dynamic_sidebar( 'left-sidebar' ); ?> </ul> <?php } ?>
Список изменений
С версии 2.8.0 | Введена. |
Код is_active_sidebar() is active sidebar WP 6.7.2
function is_active_sidebar( $index ) { $index = ( is_int( $index ) ) ? "sidebar-$index" : sanitize_title( $index ); $sidebars_widgets = wp_get_sidebars_widgets(); $is_active_sidebar = ! empty( $sidebars_widgets[ $index ] ); /** * Filters whether a dynamic sidebar is considered "active". * * @since 3.9.0 * * @param bool $is_active_sidebar Whether or not the sidebar should be considered "active". * In other words, whether the sidebar contains any widgets. * @param int|string $index Index, name, or ID of the dynamic sidebar. */ return apply_filters( 'is_active_sidebar', $is_active_sidebar, $index ); }