Работа с настройками виджетов в WordPress: wp_register_widget_control()

## WP_REGISTER_WIDGET_CONTROL() │ WP 2.2.0

Эта функция регистрирует колбек для управления настройками виджета. 

### Возвращаемое значение

Функция ничего не возвращает (null).

### Использование

```php
wp_register_widget_control( $id, $name, $control_callback, $options, ...$params );
  • $id (int|string) (обязательный) — Идентификатор сайдбара.

  • $name (string) (обязательный) — Имя, отображаемое для сайдбара.

  • $control_callback (callable) (обязательный) — Функция, которая вызывается при отображении сайдбара.

  • $options (array) — Массив или строка с параметрами управления.

    • height (int)
      Размер не используется.
      По умолчанию: 200.

    • width (int)
      Ширина полностью развернутой формы управления (старайтесь придерживаться ширины по умолчанию).
      По умолчанию: 250.

    • id_base (int|string)
      Обязательный для мультивиджетов, то есть для виджетов, которые позволяют создавать несколько экземпляров, как текстовый виджет. Идентификатор виджета будет выглядеть как {$id_base}-{$unique_number}.

  • ...$params (смешанный) — Дополнительные параметры, которые передаются в колбек при его вызове.

Примеры

Регистрация настроек виджета

Для настройки пользовательского виджета, функция, ответственная за вывод настроек виджета, регистрируется следующим образом:

// Регистрируем настройки виджета
wp_register_widget_control(
    'my_widget',         // идентификатор
    'my_widget',         // имя
    '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');
    ?>

    Название виджета:


Описание:


Профиль в Twitter (URL):


Заметки

  • $wp_registered_widget_controls — глобальный массив, содержащий зарегистрированные управления для виджетов.
  • $wp_registered_widget_updates — глобальный массив, содержащий зарегистрированные обновления виджетов.
  • $wp_registered_widgets — глобальный массив, содержащий зарегистрированные виджеты.
  • $_wp_deprecated_widgets_callbacks — глобальный массив, содержащий устаревшие колбеки для виджетов.

Журнал изменений

  • С версии 2.2.0 — функция была введена.
  • С версии 5.3.0 — параметр ...$params стал частью сигнатуры функции.

Связанные функции

Сайдбары (Виджеты)

  • dynamic_sidebar()
  • is_active_sidebar()
  • is_active_widget()
  • is_dynamic_sidebar()
  • is_registered_sidebar()
  • register_sidebar()
  • register_sidebars()
  • register_widget()
  • the_widget()
  • unregister_sidebar()
  • unregister_widget()
  • wp_get_sidebars_widgets()
  • wp_register_sidebar_widget()
  • wp_unregister_sidebar_widget()
  • WP_Widget_Archives()
  • wp_widgets_init()

Виджеты (Сайдбары)

  • wp_get_sidebar()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *