register_sidebars() — позволяет зарегистрировать несколько сайдбаров за раз

Функция позволяет сразу зарегистрировать несколько сайдбаров (сайдбары будут однотипными). Ничего не возвращает.

На мой взгляд для этих целей гораздо удобнее использовать функцию register_sidebar(), которая позволяет для каждого из сайдбаров установить уникальные значения параметров (кстати говоря, register_sidebars() и есть ни что иное, как функция register_sidebar(), пропущенная через цикл).

register_sidebars($number = 1, $args = array())
$number
(целое число) количество сайдбаров, которые необходимо зарегистрировать.
$args
(массив|строка) параметры массива $args будут такими же, как и у функции register_sidebar(), единственное отличие, что к указанным id и имени будет автоматически добавляться порядковый номер, например если вы решили зарегистрировать 3 сайдбара и в качестве значения id указали «mysidebar», то зарегистрированные сайдбары будут «mysidebar», «mysidebar-2», «mysidebar-3». С именами сайдбаров дело обстоит немного по-другому, смотрите пример и вам сразу всё станет понятно.

Пример

Зарегистрируем 3 сайдбара. Хук widgets_init обязателен! В примерах в официальной документации он не используется — не обращайте на это внимания, он нужен всё равно (без него сайдбары тоже добавятся, но в будущем это может привести к багам).

function true_register_multiple_sidebars(){
	register_sidebars( 3, array('id'=>'mysidebar', 'name'=>'Мой сайдбар %d') );
}
 
add_action('widgets_init', 'true_register_multiple_sidebars');

В итоге IDы зарегистрированных сайдбаров будут: «mysidebar», «mysidebar-2», «mysidebar-3».
Имена: «Мой сайдбар 1», «Мой сайдбар 2» и «Мой сайдбар 3».

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Да, точно)

  • Владимир: и на третьей строке не хватает скобки ) закрывающей if :)

  • Миша: Добрый вечер! Рекомендую получить ID пользователя через функцию get_current_user_id().

  • Дмитрий: Миша, подскажите пожалуйста, я использую такой редирект, но он не срабатывает: add_action( 'template_redirect', funct...

  • Миша: Ну как не определена - это аргумент функции. Или я просто вас не до конца понимаю.