is_registered_sidebar()
Проверяет, зарегистрированна ли указанная виджет-зона.
Помогает безопасно работать с сайдбарами, не вызывая ошибок. Эту проверку удобно использовать перед вызовом dynamic_sidebar() или при миграции/обновлении темы, когда набор сайдбаров может меняться.
Если область не найдена, можно вывести запасной блок или пропустить код.
Функция просто смотрит, есть ли ключ в глобальном массиве $wp_registered_sidebars, поэтому работает очень быстро.
Идентификатор сайдбара чувствителен к регистру и должен совпадать с id, переданным в register_sidebar().
1 раз — 0.000013 сек (очень быстро) | 50000 раз — 0.02 сек (скорость света)
Хуков нет.
Возвращает
true|false.
true— сайдбар с таким id зарегистрирован.false— в противном случае.
Использование
is_registered_sidebar( $sidebar_id );
- $sidebar_id(строка/число) (обязательный)
- ID области для виджетов, которая была указана в параметре
idпри регистрации виджета с помощью register_sidebar().
Примеры
#1 Проверим есть ли уже панель виджетов 'sidebar' и если нет, зарегистрируем её.
add_action( 'widgets_init', 'register_my_widgets' );
function register_my_widgets(){
if( ! is_registered_sidebar( 'sidebar' ) ){
register_sidebar( [
'name' => "боковая панель сайта",
'id' => 'sidebar',
'description' => 'Эти виджеты будут показаны с сайдбаре сайта',
'before_title' => '<h1>',
'after_title' => '</h1>'
] );
}
}Заметки
- Global. Массив.
$wp_registered_sidebarsThe registered sidebars.
Список изменений
| С версии 4.4.0 | Введена. |
Код is_registered_sidebar() is registered sidebar WP 7.1
function is_registered_sidebar( $sidebar_id ) {
global $wp_registered_sidebars;
return isset( $wp_registered_sidebars[ $sidebar_id ] );
}