register_sidebar() — регистрирует сайдбар

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

register_sidebar( $args = array() )
$args
(массив|строка) содержит следующие параметры:

name
Название сайдбара (по умолчанию локализованное «Sidebar» и его порядковый номер).
id
Идентификатор сайдбара — латинские символы и цифры в нижнем регистре без пробелов (по умолчанию: sidebar-$i, где $i — порядковый номер сайдбара). Не рекомендуется использовать IDы из этого списка.
description
Описание сайдбара (параметр добавлен в WordPress 2.9). Будет использовано на странице управления виджетами:

Сайдбар с описанием и с добавленным в него виджетом.
class
CSS-класс, который будет дополнительно добавляться к каждому виджету в этом сайдбаре.
before_widget
HTML, который следует разместить непосредственно перед каждым виджетом, по умолчанию: <li id="%1$s" class="widget %2$s">.
after_widget
HTML, который должен добавляться автоматически после каждого виджета, по умолчанию: </li>\n.
before_title
HTML перед заголовком каждого виджета, по умолчанию: <h2 class="widgettitle">.
after_title
HTML после заголовка каждого виджета, по умолчанию: </h2>\n.

Пример

Обратите внимание, функция должна быть обязательно подключена через хук widgets_init. Код можно вставить в functions.php темы, для которой вы хотите зарегистрировать сайдбар.

Для того, чтобы было легко разобраться в коде, я использовал те же самые значения параметров, которые были использованы при регистрации сайдбара «4я колонка в футере» (скриншот выше).

function true_register_new_sidebar() {
 
	/* Регистрируем сайдбар foot4. */
	register_sidebar(
		array(
			'id' => 'foot4',
			'name' => '4я колонка в футере',
			'description' => 'Данный сайдбар позволит добавить что-либо в четвертую колонку в футере сайта.',
			'before_widget' => '<div id="%1$s" class="widget %2$s">',
			'after_widget' => '</div>',
			'before_title' => '<h4 class="widget-heading">',
			'after_title' => '</h4>'
		)
	);
 
	/* Чтобы зарегистрировать еще сайдбары, просто скопируйте сюда функцию register_sidebar(), заменив в ней несколько параметров. */
}
 
add_action( 'widgets_init', 'true_register_new_sidebar' );

Параметры в функцию можно также передать и в виде строки:

function true_register_new_sidebar_2() {
	register_sidebar('id=sb_left&name=Левый сайдбар&before_title=<h3>&after_title=</h3>');
}
 
add_action( 'widgets_init', 'true_register_new_sidebar_2' );

Окей, сайдбар мы зарегистрировали, а что делать дальше? Как подключить его в теме? Читайте подробное руководство по сайдбарам на моем блоге.

Комментарии 15

  • Алексей15 февраля 2015 в 20:02 #

    подскажите пожалуйста как для ul в виджете задать класс?

  • Егор12 апреля 2015 в 19:04 #

    Здравствуй, Михаил. Собираю 1-ю (не дочернюю) собственную тему на cетке Вootstrap, Hеader собрал, теперь взялся за Footer. Нужно 3 сайдбара регистрировать и подключать. Спасибо за инфу. У тебя покруче кодекса WP сайт.

  • Наталья17 мая 2015 в 17:05 #

    ....sidebar вызвана неправильно. В массиве аргументов для боковой колонки «Sidebar» не задан параметр id. Присвоенное по умолчанию значение равно «sidebar-1». Чтобы убрать это сообщение и сохранить текущее содержимое боковой колонки, задайте вручную параметр id, равный «sidebar-1». Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 4.2.0.) in /var/www/vaychka/data/www/vaychka.68edu.ru/wp-includes/functions.php on line 3560
    ПОМОГИТЕ "ЛУЗЕРУ" ИСПРАВИТЬ ОШИБКУ, ПОЖАЛУЙСТА, ЧТО ДЕЛАТЬ?

  • Миша18 мая 2015 в 08:05 #
    register_sidebar(
    		array(
    			'id' => 'lalala', // укажите тут свой ID, что угодно, не используя русские буквы
    • Наталья23 мая 2015 в 22:05 #

      Миша, спасибо большое, но можно поподробнее: вот вошла я в Консоль, что дальше делать, куда нажимать? Настройки? Или что? Помогите. Мне поручили школьный сайт, а я плохо разбираюсь в тонкостях его управления. Спасибо

      • Миша24 мая 2015 в 11:05 #

        Вы в принципе можете прислать мне доступ к админке и я попробую исправить (по email).

        • Надежда23 ноября 2015 в 18:11 #

          Михаил, можно ваш email ? У меня вопрос по переносу сайта на другой хостинг.

    • Михаил29 декабря 2015 в 12:12 #

      У меня такая же проблема. Пишет - sidebar вызвана неправильно. В массиве аргументов для боковой колонки «Боковая колонка 1» не задан параметр id. Присвоенное по умолчанию значение равно «sidebar-1». Чтобы убрать это сообщение и сохранить текущее содержимое боковой колонки, задайте вручную параметр id, равный «sidebar-1». Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение было добавлено в версии 4.2.0.) in /var/www/user11686/data/www/fast-muscle.ru/wp-includes/functions.php on line 3787 Notice: Функция add_custom_background с версии 3.4 считается устаревшей! Используйте add_theme_support( 'custom-background', $args ). in /var/www/user11686/data/www/fast-muscle.ru/wp-includes/functions.php on line 3568 Notice: Undefined index: page in /var/www/user11686/data/www/fast-muscle.ru/wp-content/themes/iBusiness/functions.php on line 123

      Что с этим сделать? Где найти эти строки, которые вы указали?

      Судя по всему это распространенная проблема, так как если ввести в Яндекс начальные слова этой ошибки, то они на многих сайтах заиндексировались. Сайт не работает уже 4 дня (белый экран).

      • Миша30 декабря 2015 в 06:12 #

        Произведите поиск по файлам темы по ключевым фразам register_sidebar для первой ошибки и add_custom_background для второй.

  • Михаил30 декабря 2015 в 09:12 #

    Фразы находятся, но непонятно, в каком месте и что нужно менять. Вы можете мне исправить на коммерческой основе?

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

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

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

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

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

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