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.

Приклади

0

#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.0.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 вважається "активним".
	 *
	 * @ Since 3.9.0
	 *
	 * @param bool $is_active_sidebar Whether або не sidebar should be considered "active".
	 * У інших словах, де на сторонібару містяться будь-які widgets.
	 * @param int|string $index Index, name, або ID dynamic sidebar.
	 */
	return apply_filters( 'is_active_sidebar', $is_active_sidebar, $index);
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *