is_active_sidebar()
Проверяет используется ли указанная панель виджетов (область для виджетов, сайдбар). Сработает если в области для виджетов есть хоть один виджет. Условный тег.
Проверяет активен ли сайдбар (добавлены ли в указанную область какие-либо виджеты).
Чтобы проверить поддерживает ли тема функцию виджетов и есть ли хоть одна активная панель с виджетами, используйте функцию is_dynamic_sidebar().
Если нужно проверить активен ли конкретный виджет, а не панель виджетов, используйте функцию is_active_widget()
Работает на основе: wp_get_sidebars_widgets()
Хуки из функции
Возвращает
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.9.4
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 );
}