От автора: в этом уроке мы продолжим создание плагина для WordPress «Избранные записи». Напомню, в предыдущем уроке мы реализовали функционал, позволяющий очищать список избранного, т.е. удалять все статьи из него за один раз, а не по одной. В этом уроке мы приступим к созданию собственного виджета, используя который мы выведем блок статей Избранного, к примеру в сайдбаре сайта.
![]() |
Автор: Андрей КудлайЗовут меня Андрей Кудлай. Родом я из Украины, живу в Днепропетровске. Веб-программированию учился сам. Неплохо знаю HTML, CSS, PHP, JavaScript. |
Начнем с того, что скажем несколько слов о написании виджетов. Если до этого мы писали весь код в процедурном стиле, то при написании виджета нам потребуется уже использовать объектно-ориентированный подход.
В случае с плагинами WordPress предлагает два варианта написания кода на выбор: процедурный или объектно-ориентированный. В случае же с виджетами выбора у нас нет, поскольку для того, чтобы написать виджет, мы должны наследовать уже имеющийся класс WordPress — это класс WP_Widget. Соответственно, нам потребуется писать собственный класс, который и будет описывать создаваемый виджет.
Итак, откроем главный файл плагина и инициализируем такой класс:

Бесплатный курс «Создание тем на WordPress. Быстрый старт»
Изучите курс и узнайте, как создавать уникальные темы на WordPress с нестандартной структурой страниц
Скачать курс
1 2 3 4 |
add_action( 'widgets_init', 'wfm_favorites_widget' ); function wfm_favorites_widget(){ register_widget( 'WFM_Favorites_Widget' ); } |
Здесь мы обращаемся к хуку widgets_init, к которому цепляем функцию, регистрирующую наш собственный виджет. В качестве параметра функция принимаем имя класса. Класс мы опишем в отдельном файле, который создадим в корне папки с плагином и подключим после подключения файла функций:
1 |
require __DIR__ . '/WFM_Favorites_Widget.php'; |
В созданном классе мы можем работать с четырьмя методами:
__construct — метод конструктора, определяющий настройки виджета в списке виджетов;
form — метод, описывающий форму виджета в админской части;
widget — метод, описывающий вывод виджета в пользовательской части;
update — метод, отвечающий за обновление настроек виджета в админке.
Пока что мы используем в коде только первые три метода. Метод update является опциональным и используется в том случае, если нам необходимо выполнить дополнительные действия в момент обновления настроек виджета.
Итоговый код класса в итоге будет примерно таким:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<?php class WFM_Favorites_Widget extends WP_Widget{ // настройки виджета в списке виджетов public function __construct(){ $args = [ 'name' => 'Избранные записи', 'description' => 'Выводит блок избранных записей пользователя' ]; parent::__construct('wfm-favorites-widget', '', $args); } // форма виджета в админке public function form($instance){ extract($instance); $title = !empty($title) ? esc_attr( $title ) : 'Тестовое название'; ?> <p> <label for="<?php echo $this->get_field_id('title') ?>">Заголовок:</label> <input type="text" name="<?php echo $this->get_field_name('title') ?>" value="<?php echo $title ?>" id="<?php echo $this->get_field_id('title') ?>" class="widefat"> </p> <?php } // виджет в пользовательской части public function widget($args, $instance){ } // обновление настроек виджета в админке /*public function update(){ }*/ } |
По сути мы пока что описали лишь первые два метода. В метода конструктора мы указали название и описание создаваемого виджета, а также вызвали конструктор наследуемого класса, передав соответствующие параметры.
Метод form создает пока что лишь одну настройку — название виджета, которое будет выводиться в пользовательской части. В качестве параметра метод принимает массив с сохраненными настройками.
Если мы нигде не ошиблись, то теперь в разделе виджетов мы увидим новый виджет, который можем использовать и даже сохранить первую настройку для него — его заголовок.
На этом текущий урок завершен. Удачи и до новых встреч!

Бесплатный курс «Создание тем на WordPress. Быстрый старт»
Изучите курс и узнайте, как создавать уникальные темы на WordPress с нестандартной структурой страниц
Скачать курс
Создание тем на WordPress. Быстрый старт
Изучите курс и узнайте, как создать тему на WordPress
Смотреть
Комментарии (8)