wp_register_sidebar_widget() WP 2.2
Регистрирует виджет, который затем можно добавить в панель виджетов (сайдбар) в админ-панели.
Является основой для:
wp_unregister_sidebar_widget()
Хуки из функции
Возвращает
Ничего не возвращает.
Использование
wp_register_sidebar_widget( $id, $name, $output_callback, $options, $params, ... );
- $id(строка/число) (обязательный)
- ID виджета, уникальное название. Например, your_widget_1.
- $name(строка) (обязательный)
- Заголовок виджета, по которому его можно будет узнать в админ-панели.
- $output_callback(строка) (обязательный)
- Функция обратного вызова, которая будет запускаться при вызове виджета в шаблоне.
- $options(строка/массив)
- Настройки виджета.
По умолчанию: нет - $params, ...(строка/массив/число/объект/логический)
- Параметры, которые будут добавлены к виджету.
По умолчанию: нет
Параметры передаваемые функции обратного вызова ($output_callback)
function my_output_callback_function( $args, $params ){ ... }
- $args(массив) (обязательный)
- Параметры виджета, регистрируемые при регистрации виджета: widget_id, widget_name и т.д.
- $params(массив) (обязательный)
- Дополнительные параметры передаваемые функции, параметр $params функции wp_register_sidebar_widget().
К параметрам применяется фильтр dynamic_sidebar_params, перед вызовом функции обратного вызова.
Примеры
#1 Создание виджета
Следующий код, создаст виджет "Мой виджет", который станет доступен в админ-панели WordPress. Этот виджет можно будет перетащить в доступную панель виджетов (сайдбар).
function your_widget_display($args) { extract($args); echo $before_widget; echo $before_title . 'Мой уникальный виджет' . $after_title; // Код виджета, при выводе в шаблон echo "Your Widget Test"; echo $after_widget; } wp_register_sidebar_widget( 'your_widget_1', // ID виджета 'Мой виджет', // Заголовок виджета 'your_widget_display', // Функция обратного вызова array( // Настройки 'description' => 'Описание виджета, для чего он нужен, что он делает' ) );
Заметки
#1 Регистрация рекурсивного виджета
При регистрации виджета с помощью wp_register_sidebar_widget()
, виджет можно будет использоваться только 1 раз, его можно будет добавить только в 1 сайдбар. Для регистрации виджетов, которые можно использовать множество раз, используйте функцию 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' );
Заметки
- Global. Массив.
$wp_registered_widgets
Uses stored registered widgets. - Global. Массив.
$wp_registered_widget_controls
Stores the registered widget controls (options). - Global. Массив.
$wp_registered_widget_updates
- Global. Массив.
$_wp_deprecated_widgets_callbacks
Список изменений
С версии 2.2.0 | Введена. |
С версии 5.3.0 | Formalized the existing and already documented ...$params parameter by adding it to the function signature. |
Код wp register sidebar widget:
wp-includes/widgets.php
WP 5.3
Cвязанные функции
Из метки: sidebar (widget Виджет)
- dynamic_sidebar()
- is_active_sidebar()
- is_active_widget()
- is_dynamic_sidebar()
- is_registered_sidebar()
- register_sidebar()