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