wp_register_widget_control()
Реєструє функцію, що відповідає за виведення настройок віджету в адмін-панелі. Збереження опцій віджету відбувається у цій функції.
При реєстрації віджету за допомогою wp_register_sidebar_widget(), віджет можна буде використовувати лише 1 раз. Для реєстрації рекурсивного віджету використовуйте функцію register_widget() .
Хуків немає.
Повертає
null
. Нічого не вертає.
Використання
wp_register_widget_control($id, $name, $control_callback, $options, $params,...);
-
$id
(число/рядок) (обов’язковий) -
ID віджета, унікальна назва. Наприклад,
your_widget_1
. Повинен збігатися з функцією $id
wp_register_sidebar_widget( $id, … ) , яка реєструє віджет. -
$name
(рядок/рядок) (обов’язковий) -
Назва віджету в сайдбарі. Вказуємо таке ж як id (щось я не знайшов, де воно виводиться)… Назва (заголовок) віджету в адмін-панелі вказується в параметрі $name при реєстрації
wp_register_sidebar_widget( $id, $name, … ) . -
$control_callback
(callback/рядок) (обов’язковий) - Назва функції зворотного дзвінка, яка відповідатиме за виведення вмісту віджету в сайдбарі.
-
$options
(масив) -
Містить масив з наступних елементів:
height
,
width
‘ та
id_base
.
‘height’ – не використовується ніколи.
‘width’ – це ширина розгорнутого віджету. Якщо вказати, наприклад, 500, то при розгортанні віджет вилазитиме за межі загального контейнера.
‘id_base’ – визначається автоматично. Щоб віджет можна було використовувати кілька разів, можна вказати цей параметр. Має виглядати приблизно так:
{$id_base}-{$unique_number}
. Не зрозумів, як використовувати.
За замовчуванням: array() -
$params,…
(змішаний/рядок) (обов’язковий) -
Додаткові параметри, які потрібно передати у віджет. Допустимо тут ми вкажемо такі рядки:
wp_register_widget_control( ..., $param1='foo', $param2='foo2' );
тоді функції $control_callback будуть передані параметри:
$param1='foo', $param2='foo2'
.
Приклади
#1 Реєстрація налаштувань віджету
Нам потрібно встановити налаштування для довільного віджету. Функція, що відповідає за виведення настройок віджету (), реєструється так:
<?php // реєстрація налаштувань віджету wp_register_widget_control( 'my_widget', // id 'my_widget', // name 'my_widget_control', // назва функції зворотного виклику array('width'=>500), // ширина блоку налаштувань $param1 = 'foo' // параметр, що передається в my_widget_control($param1) параметр ); // форма налаштувань віджету та збереження опцій function my_widget_control( $param1 = array() ) { // якщо дані надіслані зберігаємо в опції if( isset($_POST['submitted']) ) { update_option('my_widget_title', $_POST['widgettitle']); update_option('my_widget_twitterurl', $_POST['twitterurl']); update_option('my_widget_description', $_POST['description']); } // Завантажуємо опції $widgettitle = get_option('my_widget_title'); $twitterurl = get_option('my_widget_twitterurl'); $description = get_option('my_widget_description'); ?> Заголовок віджету:<br /> <input type="text" class="widefat" name="widgettitle" value="<?php echo stripslashes($widgettitle); ?>" /> <br /><br /> Опис:<br /> <textarea class="widefat" rows="5" name="description"><?php echo stripslashes($description); ?></textarea> <br /><br /> Профіль Twitter (URL):<br /> <input type="text" class="widefat" name="twitterurl" value="<?php echo stripslashes($twitterurl); ?>" /> <br /><br /> <input type="hidden" name="submitted" value="1" /> <?php }
нотатки
- Global. Масив. $wp_registered_widget_controls
- Global. Масив. $wp_registered_widget_updates
- Global. Масив. $wp_registered_widgets
- Global. Масив. $_wp_deprecated_widgets_callbacks
список змін
З версії 2.2.0 | Введено. |
З версії 5.3.0 | Formalizated existing and already documented …$params parameter by adding it to the функція signature. |