# WP_REGISTER_SIDEBAR_WIDGET() │ WP 2.2.0
Функция wp_register_sidebar_widget() регистрирует виджет в WordPress. Это позволяет добавлять интерактивные элементы, такие как текстовые блоки или формы, в боковые панели вашего сайта.
## Описание функции
По умолчанию, виджет имеет опцию «classname», которую можно перезаписать. Функция также может использоваться для отмены регистрации виджетов, если параметр $output_callback оставлен пустым.
### Возврат
Функция ничего не возвращает (null).
## Синтаксис использования
```php
wp_register_sidebar_widget( $id, $name, $output_callback, $options, ...$params );
- $id (int|string) — обязательный параметр. Уникальный идентификатор для виджета.
- $name (string) — обязательный параметр. Название, которое будет отображаться для виджета.
- $output_callback (callable) — обязательный параметр. Функция, которая будет выполняться при вызове виджета.
- $options (array) — массив дополнительных опций для виджета.
- classname (string) — имя класса для HTML-контейнера виджета. По умолчанию — сокращённая версия имени функции обратного вызова.
- description (string) — описание виджета, которое будет отображаться в административной панели.
- show_instance_in_rest (true|false) — показывает настройки виджета в REST API. Доступно только для виджетов, основанных на
WP_Widget.
- ...$params (mixed) — необязательные дополнительные параметры, которые будут переданы функции обратного вызова при её вызове.
Примеры использования
Пример 1: Создание виджета
Ниже приведён код для создания виджета с заголовком «Мой виджет», который станет доступен в админ-панели WordPress. Этот виджет можно будет добавить в боковую панель.
wp_register_sidebar_widget(
'your_widget_1', // идентификатор виджета
'My widget', // заголовок виджета
'your_widget_display', // функция обратного вызова
// Настройки
array(
'description' => 'Описание виджета, для чего он нужен и что делает'
)
);
function your_widget_display( $args ) {
extract($args);
echo $before_widget;
echo $before_title . 'Мой уникальный виджет' . $after_title;
// Код виджета, который будет отображаться в шаблоне
echo "Тест вашего виджета";
echo $after_widget;
}
Пример 2: Регистрация рекурсивного виджета
При регистрации виджета с помощью wp_register_sidebar_widget(), он может быть использован только один раз и добавлен только в одну боковую панель. Чтобы зарегистрировать виджеты, которые могут использоваться несколько раз, используйте register_widget():
class My_New_Widget extends WP_Widget {
function My_New_Widget () {
// Создание экземпляра родительского объекта
parent::__construct( false, 'Новый заголовок виджета' );
}
function widget( $args, $instance ) {
// Вывод виджета на экран
}
function update( $new_instance, $old_instance ) {
// Сохранение настроек виджета
}
function form( $instance ) {
// Форма настроек виджета в админ-панели
}
}
function register_My_New_Widget() {
register_widget( 'My_New_Widget' );
}
add_action( 'widgets_init', 'register_My_New_Widget' );
Заметки
- Глобальный массив:
$wp_registered_widgetsсодержит зарегистрированные виджеты. - Глобальный массив:
$wp_registered_widget_controlsхранит настройки зарегистрированных виджетов. - Глобальный массив:
$wp_registered_widget_updatesуправляет обновлениями виджетов.
Изменения
- С версии 2.2.0: Функция была введена.
- С версии 5.3.0: Параметр
...$paramsбыл формализован и добавлен в сигнатуру функции. - С версии 5.8.0: Добавлена опция
show_instance_in_rest.
Связанные функции
dynamic_sidebar()is_active_sidebar()is_active_widget()register_sidebar()register_widget()wp_unregister_sidebar_widget()
Эта статья теперь написана простым и понятным языком, содержит структурированные примеры и комментарии к коду, что делает её более доступной для начинающих пользователей WordPress.