is_active_sidebar

Проверяет используется ли указанная панель виджетов (область для виджетов, сайдбар). Сработает если в области для виджетов есть хоть один виджет. Условный тег.

Проверяет активен ли сайдбар (добавлены ли в указанную область какие-либо виджеты).

Чтобы проверить поддерживает ли тема функцию виджетов и есть ли хоть одна активная панель с виджетами, используйте функцию is_dynamic_sidebar().

Если нужно проверить активен ли конкретный виджет, а не панель виджетов, используйте функцию is_active_widget()
Хуки из функции:
is_active_sidebar
Возвращает

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 } ?>

Код из


wp-includes/widgets.php

WP 4.7.2

<?php
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 );
}