is_registered_sidebar()WP 4.4.0

Проверяет, зарегистрированна ли указанная виджет-зона.

Помогает безопасно работать с сайдбарами, не вызывая ошибок. Эту проверку удобно использовать перед вызовом 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_sidebars The registered sidebars.

Список изменений

С версии 4.4.0 Введена.

Код is_registered_sidebar() WP 7.1

function is_registered_sidebar( $sidebar_id ) {
	global $wp_registered_sidebars;

	return isset( $wp_registered_sidebars[ $sidebar_id ] );
}