Регистрация сайдбаров в WordPress: функция register_sidebars()

Функция 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 );
        }
    }

    Эта функция выполняет создание запрашиваемых сайдбаров, управляет их идентификаторами и названиями автоматически, что делает процесс добавления боковых панелей простым и удобным.

    Leave a Reply

    Ваш адрес email не будет опубликован. Обязательные поля помечены *