wp_register_sidebar_widget()
Реєструє віджет, який можна додати в панель віджетів (сайдбар) в адмін-панелі.
Основа для:
wp_unregister_sidebar_widget()
wp_unregister_sidebar_widget()
Хуки з функції
Повертає
null
. Нічого не вертає.
Використання
wp_register_sidebar_widget( $id, $name, $output_callback, $options, ...$params );
-
$id
(рядок/число) (обов’язковий) -
ID віджета, унікальна назва. Наприклад,
your_widget_1
. -
$name
(рядок) (обов’язковий) - Заголовок віджету, яким його можна буде дізнатися в адмін-панелі.
-
$output_callback
(рядок) (обов’язковий) - Функція зворотного дзвінка, яка буде запускатися під час дзвінка віджету в шаблоні.
-
$options
(рядок/масив) Налаштування віджету. Приклад:
$widget_ops = array( 'classname' => 'widget_block', 'description' => __( 'A widget containing a block.' ), 'customize_selective_refresh' => true, 'show_instance_in_rest' => true, // c WP 5.8 'mime_type' => '', );
За замовчуванням: array()
-
…$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' => 'Опис віджету, для чого він потрібен, що він робить' ) );
#2 Реєстрація рекурсивного віджету
При реєстрації віджету за допомогою 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 За допомогою 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 | Formalizated existing and already documented …$params parameter by adding it до функції signature. |
З версії 5.8.0 | Added show_instance_in_rest option. |