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.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);
}