Функция register_sidebars() в WordPress
Функция register_sidebars() позволяет создать несколько сайдбаров (боковых панелей) для темы WordPress. Вы можете использовать ее, чтобы быстро добавить боковые панели на свой сайт, не беспокоясь о подробной настройке, если в аргументах не указаны name и id.
Что такое сайдгары?
Сайдбары — это область на вашем сайте, куда можно добавлять виджеты (например, списки, меню, последние записи и другие элементы). Это удобно для настройки внешнего вида и функциональности вашего сайта.
Как использовать register_sidebars()
register_sidebars( $number, $args );
- $number (int): количество сайдбаров, которые вы хотите создать. По умолчанию: 1.
- $args (array|string): массив или строка с параметрами для создания сайдбара. По умолчанию: пустой массив.
Параметры $args
-
id (string): базовая строка уникального идентификатора для каждого сайдбара. Если вы создаете несколько сайдбаров, к идентификатору будет добавляться "-2", "-3" и так далее.
- По умолчанию: 'sidebar-'
-
name (string): название сайдбара, которое будет отображаться в административной панели. Если создаете более одного сайдбара, добавьте '%d' в строку как заполнитель для уникального номера каждого сайдбара. Например, для первого сайдбара можно использовать 'Сайдбар %d'.
- По умолчанию: 'Сайдбар'
Примеры использования
1. Регистрация одного сайдбара
register_sidebars( 1, [
'name' => 'Сайдбар на главной странице',
'id' => 'homepage-sidebar',
'description' => 'Отображается только на главной странице сайта.',
'before_widget' => '',
'after_widget' => ' ',
'before_title' => '',
'after_title' => '
',
]);
Обратите внимание: значение параметра id должно быть записано маленькими буквами и без пробелов.
2. Регистрация двух сайдбаров
register_sidebars( 3, [
'name' => 'Foobar %d',
'id' => 'right-sidebar',
'description' => 'Эти виджеты будут отображаться в правом столбце сайта.',
'before_title' => '',
'after_title' => '
',
]);
При этом id будет автоматически изменён:
- right-sidebar
- right-sidebar-2
- right-sidebar-3
3. Создание двух сайдбаров с заголовками в теге <h1>
register_sidebars( 2, [
'before_title' => '',
'after_title' => '
',
]);
Также можно указать параметры в виде строки:
register_sidebars( 2, "before_title=&after_title=
");
Примечания
- Ваша функция
register_sidebars()зависит от функцииregister_sidebar(), поэтому её параметры также действуют здесь. - Созданные сайдбары сохраняются в глобальном массиве
$wp_registered_sidebars.
Изменения
Функция была введена в версии WordPress 2.2.0.
Код функции register_sidebars()
function register_sidebars( $number = 1, $args = array() ) {
global $wp_registered_sidebars;
$number = (int) $number;
if ( is_string( $args ) ) {
parse_str( $args, $args );
}
for ( $i = 1; $i <= $number; $i++ ) {
$_args = $args;
if ( $number > 1 ) {
if ( isset( $args['name'] ) ) {
$_args['name'] = sprintf( $args['name'], $i );
} else {
$_args['name'] = sprintf( __( 'Сайдбар %d' ), $i );
}
} else {
$_args['name'] = isset( $args['name'] ) ? $args['name'] : __( 'Сайдбар' );
}
if ( isset( $args['id'] ) ) {
$_args['id'] = $args['id'];
$n = 2;
while ( is_registered_sidebar( $_args['id'] ) ) {
$_args['id'] = $args['id'] . '-' . $n++;
}
} else {
$n = count( $wp_registered_sidebars );
do {
$_args['id'] = 'sidebar-' . ++$n;
} while ( is_registered_sidebar( $_args['id'] ) );
}
register_sidebar( $_args );
}
}
Эта функция выполняет создание запрашиваемых сайдбаров, управляет их идентификаторами и названиями автоматически, что делает процесс добавления боковых панелей простым и удобным.