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. |