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' );