register_widget()

Регистрирует виджет
Функция WordPress
INT 2.8.0
WordPress Icon

Описание функции

Функция register_widget() регистрирует виджет в WordPress. Она позволяет добавить пользовательский виджет, который будет отображаться на сайте.

Виджеты — это блоки контента, которые можно добавить в сайдбары, футеры или другие области сайта. Они могут содержать различные элементы, такие как текст, изображения, формы, меню и другие.

Функция register_widget() принимает имя класса виджета или экземпляр класса виджета в качестве параметра. Она регистрирует виджет, чтобы он стал доступным для добавления на сайт.

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

register_widget( string|WP_Widget $widget )

Функция register_widget() принимает один обязательный параметр:

  • $widget (string|WP_Widget) — Имя класса виджета или экземпляр класса виджета. Это может быть строка с именем класса или объект класса.
<?php
// Создаем класс виджета
class My_Widget extends WP_Widget {
 
  // Конструктор класса
  function __construct() {
    parent::__construct(
      'my_widget', // Уникальный идентификатор виджета
      'Мой Виджет', // Название виджета
      array( 'description' => 'Описание моего виджета' ) // Описание виджета
    );
  }
 
  // Метод отображения виджета
  public function widget( $args, $instance ) {
    // Выводим содержимое виджета
    echo 'Привет, я виджет!';
  }
 
  // Метод отображения формы настройки виджета
  public function form( $instance ) {
    // Отображаем форму настройки виджета
  }
 
  // Метод обновления настроек виджета
  public function update( $new_instance, $old_instance ) {
    // Обновляем настройки виджета
  }
}
 
// Регистрируем виджет
register_widget( 'My_Widget' );
?>

В приведенном выше примере мы создаем класс виджета My_Widget, который наследуется от базового класса WP_Widget. В конструкторе класса мы указываем уникальный идентификатор виджета, его название и описание.

Затем мы определяем методы widget(), form() и update(), которые отвечают за отображение содержимого виджета, формы настройки виджета и обновление настроек виджета соответственно.

Наконец, мы регистрируем виджет с помощью функции register_widget(), передавая ей имя класса виджета My_Widget.

Примеры использования

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


function wpdocs_register_my_widget() {
    register_widget( 'My_Widget' );
}
add_action( 'widgets_init', 'wpdocs_register_my_widget' );

Функция register_widget() используется для регистрации виджета. В качестве параметра она принимает имя класса виджета или экземпляр класса виджета.

Создание экземпляра виджета


class My_Widget extends WP_Widget {
    public function __construct() {
        parent::__construct(
            'my_widget',
            'My Widget',
            array( 'description' => 'My Widget Description' )
        );
    }
}

Для создания экземпляра виджета необходимо создать класс, который наследует от класса WP_Widget. В конструкторе класса необходимо указать идентификатор виджета, его название и описание.

Использование виджета в сайдбаре


class My_Widget extends WP_Widget {
    public function widget( $args, $instance ) {
        // Вывод содержимого виджета
    }
}

Метод widget() вызывается при выводе виджета в сайдбаре. В этом методе можно определить, какое содержимое будет отображаться в виджете.

Настройка виджета


class My_Widget extends WP_Widget {
    public function form( $instance ) {
        // Отображение формы настройки виджета
    }
 
    public function update( $new_instance, $old_instance ) {
        // Сохранение настроек виджета
    }
}

Метод form() вызывается при отображении формы настройки виджета. В этом методе можно определить поля и элементы управления, которые будут использоваться для настройки виджета.

Метод update() вызывается при сохранении настроек виджета. В этом методе можно определить, какие значения будут сохраняться при изменении настроек виджета.

Вопросы и ответы

Как зарегистрировать виджет в WordPress?

Для регистрации виджета в WordPress используется функция register_widget(). Эта функция позволяет зарегистрировать новый виджет, который будет доступен для использования в административной панели WordPress.

Пример кода для регистрации виджета:


function wpdocs_register_my_widget() {
    register_widget( 'My_Widget_Class' );
}
add_action( 'widgets_init', 'wpdocs_register_my_widget' );

Как создать собственный класс виджета для регистрации?

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

Пример кода для создания класса виджета:


class My_Widget_Class extends WP_Widget {
    // Код класса виджета
}

Как использовать имя класса виджета при регистрации?

При регистрации виджета с помощью функции register_widget() можно использовать имя класса виджета в виде строки.

Пример кода для использования имени класса виджета при регистрации:


register_widget( 'My_Widget_Class' );

Можно ли зарегистрировать несколько виджетов с помощью одного вызова функции?

Да, с помощью одного вызова функции register_widget() можно зарегистрировать несколько виджетов. Для этого необходимо передать массив с именами классов виджетов в качестве параметра функции.

Пример кода для регистрации нескольких виджетов:


register_widget( array( 'Widget_Class_1', 'Widget_Class_2', 'Widget_Class_3' ) );

Какие ошибки могут возникнуть при регистрации виджета?

При регистрации виджета могут возникнуть следующие ошибки:

  • Неправильно указано имя класса виджета.
  • Класс виджета не существует.
  • Класс виджета не является подклассом WP_Widget.

Как удалить зарегистрированный виджет?

Для удаления зарегистрированного виджета используется функция unregister_widget( string $widget_class ). В качестве параметра необходимо указать имя класса виджета, который нужно удалить.


unregister_widget( 'My_Custom_Widget' );

Как проверить, зарегистрирован ли уже виджет?

Для проверки, зарегистрирован ли уже виджет, можно использовать функцию is_registered_widget( string $widget_class ). Она возвращает true, если виджет уже зарегистрирован, и false в противном случае.


if ( is_registered_widget( 'My_Custom_Widget' ) ) {
  echo 'Виджет уже зарегистрирован.';
} else {
  echo 'Виджет не зарегистрирован.';
}

Какие действия выполняются при регистрации виджета?

При регистрации виджета выполняются следующие действия:

  1. Проверяется, является ли указанный класс виджета подклассом WP_Widget.
  2. Если класс виджета не существует, выводится ошибка.
  3. Если класс виджета существует и является подклассом WP_Widget, он регистрируется.

Функция register_widget() в WordPress используется для регистрации виджетов. Она принимает имя класса виджета или экземпляр класса виджета в качестве параметра. При регистрации виджета выполняются проверки на правильность указания класса и его существование. Для удаления зарегистрированного виджета используется функция unregister_widget(), а для проверки, зарегистрирован ли уже виджет, используется функция is_registered_widget().

Связанные элементы

  • Функция unregister_widget(): отменяет регистрацию виджета.
  • Функция is_active_widget(): проверяет, активен ли виджет.
  • Функция is_dynamic_sidebar(): проверяет, является ли боковая панель динамической.
  • Функция is_registered_sidebar(): проверяет, зарегистрирована ли боковая панель.
  • Функция is_active_sidebar(): проверяет, активна ли боковая панель.
  • Класс WP_Widget: базовый класс для создания виджетов.
Обсуждение