is_active_sidebar()WP 2.8.0

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

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

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

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

Работает на основе: wp_get_sidebars_widgets()
Хуки из функции

Возвращает

true|false. Возвращает true, если хоть один виджет добавлен. Вернет false, если сайдбар не имеет ни одного виджета.

Использование

if( is_active_sidebar( $index ) ){
	// код
}
$index(строка/число) (обязательный)
Название панели виджетов, области виджетов (сайдбара), ID панели или порядковый номер. Если передано число, то функция ищет область с идентификатором sidebar-$index.

Примеры

1

#1 Определим активен ли виджет

Выведем на экран различный текст, в зависимости от того, активен виджет или нет:

if ( is_active_sidebar(1) ) {
	echo "Сайдбар 1 имеет виджеты.";
}
else {
	echo "Сайдбар 1 пустой.";
};
0

#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() WP 6.5.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 );
}