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