Виджеты представляют собой компактные программы с графическим интерфейсом, оформленные в виде эстетически привлекательных блоков, которые обеспечивают взаимодействие пользователей с сайтом. Обычно они располагаются на боковой панели или в подвале сайта. Ключевая задача виджетов – отображение дополнительной информации, такой как популярные статьи, метеопрогноз или возможность подписки на обновления сайта.
С технической стороны, виджет в платформе WordPress – это набор файлов, аналогично плагину, которые помещаются в определенную директорию сайта. Эти файлы содержат специальные инструкции, позволяющие системе распознавать виджет и корректно отображать его в одном из доступных мест (количество и расположение этих мест зависят от используемой темы WordPress).
Создание собственного виджета в WordPress может показаться сложной задачей, но на самом деле это довольно просто. Для этого необходимо создать файл PHP, где будет описан функционал вашего виджета, а затем зарегистрировать его с помощью функции register_sidebar_widget(). Важно также учитывать, что виджеты могут иметь настройки, которые позволит пользователям адаптировать их под свои нужды. Для этого нужно использовать функцию register_widget_control(), позволяющую добавлять поля для настройки виджета в админ-панели.
Для начинающих разработчиков существует множество готовых библиотек и фреймворков, упрощающих процесс создания виджетов. Вы также можете использовать существующие виджеты и адаптировать их функционал под свои требования. Не забывайте проверять совместимость вашего виджета с разными версиями WordPress, а также с различными темами, чтобы обеспечить его корректную работу на всех платформах.
При разработке виджета рекомендуется уделить внимание его дизайну и пользовательскому опыту. Простота и удобство использования виджета помогут пользователям лучше взаимодействовать с вашим сайтом, что может увеличить количество возвращающихся посетителей.
Система виджетов WordPress
Платформа WordPress предлагает мощные инструменты для управления виджетами, позволяя добавлять, удалять и перемещать их. Для этого предназначен специальный раздел в админке – Внешний вид -> Виджеты.

В левой части интерфейса находятся доступные для добавления виджеты, а справа – области для их размещения. Чтобы добавить виджет на панель, достаточно просто перетащить его в нужное место.

Как создать виджет в WordPress
WordPress поставляется с набором различных виджетов, однако их функциональности иногда не хватает для решения определённых задач. Поэтому возникает необходимость создавать собственные виджеты, которые будут соответствовать специфическим требованиям.
Создание виджетов в WordPress требует определенных навыков программирования на языке PHP, который широко используется для веб-разработки. В данном материале мы не будем углубляться в синтаксис языка, так как это отдельная тема, но рассмотрим основные конструкции, необходимые для создания виджета.
Есть два способа создания виджетов в WordPress. Первый метод предполагает создание отдельного плагина, после активации которого виджет становится доступным. Мы же рассмотрим более простой вариант – добавим код виджета непосредственно в конфигурационный файл темы – functions.php.
Если возникнут трудности с редактированием functions.php, можно воспользоваться плагином ProFunctions.
Создание виджета
В качестве примера создадим элементарный виджет, который будет выводить название и описание сайта.

Создание виджетов в WordPress основано на объектной модели программирования на языке PHP. Платформа включает все необходимые инструменты для этой задачи. В частности, для работы с виджетами предназначен специальный класс WP_Widget, который позволит создать виджет для сайта WordPress. Этот класс включает около 20 различных методов, но нам понадобятся лишь четыре из них:
- __construct() – инициация основной информации о виджете;
- widget() – отображение виджета в соответствующей области сайта;
- form() – параметры виджета, которые можно настроить в админ-панели WordPress;
- update() – обновление настроек виджета в админке.
Следующим методом, который мы добавим, будет widget(). Он отвечает за вывод виджета в соответствующей области на сайте.
public function widget( $args, $instance ) < $title = apply_filters( 'widget_title', $instance[ 'title' ] ); $blog_title = get_bloginfo( 'name' ); $tagline = get_bloginfo( 'description' ); echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title']; ?>
Название сайта:
Описание:
Метод widget() содержит код, который генерирует содержимое, отображаемое виджетом на сайте. В нашем примере пользователям будет доступно отображение названия и описания сайта, а также заголовка самого виджета. Для этого нужно захватить заголовок и использовать функцию get_bloginfo(), чтобы вывести название и описание блога.
Также важно понимать несколько дополнительных моментов.
Переменная $args[] представляет собой массив аргументов, которые могут быть использованы при формировании вывода виджета. Их значения задаются активной темой при регистрации области для боковой панели.
$instance[] – это переменная, содержащая значения, связанные с текущим экземпляром виджета. Если виджет добавлен несколько раз, каждый экземпляр $instance будет иметь уникальные настройки.
Фильтр widget_title возвращает заголовок для текущего экземпляра виджета.
get_bloginfo() – функция, позволяющая получить данные о сайте, включая его название и описание.
После определения переменных, код в примере продолжает формировать фактический вывод, который состоит из информации из переменной $args, заголовка, названия и описания сайта.
Обратите внимание, что почти каждый виджет должен включать аргументы before_widget, after_widget, before_title и after_title. Они обеспечивают вложение виджета в теги HTML, соответствующие теме сайта.
На следующем этапе добавим метод form(), который позволит сохранять параметры виджета, отображаемые в админ-панели WordPress.
public function form( $instance ) < $title = ! empty( $instance['title'] ) ? $instance['title'] : ''; ?>
Теперь рассмотрим метод update(), который предназначен для обновления настроек виджета в администраторской панели.
public function update( $new_instance, $old_instance )
В этом методе принимаются два параметра: $new_instance и $old_instance. Первый включает значения, введенные в форму настроек виджетов, в то время как второй содержит существующие параметры (если они имеются).
Метод update() должен проверять новые значения и затем присваивать их переменной $instance, возвращая обновленную переменную.
Завершающим шагом в процессе создания нового виджета является его регистрация и активация.
function site_register_widget() < register_widget( 'site_example_widget' ); >add_action( 'widgets_init', 'site_register_widget' );
В данном случае мы создаем функцию для регистрации виджета, используя его имя для идентификации. После этого функция связывается с WordPress через хук widgets_init.
Важно отметить, что этот кусок кода добавляется вне класса site_example_widget. При его вызове будет загружен виджет с соответствующим названием, и выполнится весь код, который содержится в методах класса.
После вставки всего кода в файл functions.php в админ-панели в разделе Внешний вид -> Виджеты появится виджет под названием site Widget, который теперь можно добавлять на панель виджетов вашей темы.
Полный код нашего виджета выглядит следующим образом:
/* Виджет site Widget */ class site_example_widget extends WP_Widget < // Установка идентификатора, заголовка, имени класса и описания для виджета. public function __construct() < $widget_options = array( 'classname' =>'site_widget', 'description' => 'Это наш первый виджет', ); parent::__construct( 'site_widget', 'site Widget', $widget_options ); > // Вывод виджета в области виджетов на сайте. public function widget( $args, $instance ) < $title = apply_filters( 'widget_title', $instance[ 'title' ] ); $blog_title = get_bloginfo( 'name' ); $tagline = get_bloginfo( 'description' ); echo $args['before_widget'] . $args['before_title'] . $title . $args['after_title']; ?>Site Name:
Tagline: // Параметры виджета, отображаемые в области администрирования WordPress. public function form( $instance ) < $title = ! empty( $instance['title'] ) ? $instance['title'] : ''; ?>
get_field_name( 'title' ); ?>" value="" />
// Обновление настроек виджета в админ-панели. public function update( $new_instance, $old_instance ) < $instance = $old_instance; $instance[ 'title' ] = strip_tags( $new_instance[ 'title' ] ); return $instance; >> // Регистрация и активация виджета. function site_register_widget() < register_widget( 'site_example_widget' ); >add_action( 'widgets_init', 'site_register_widget' );
Также рекомендуем прочитать: Как изменить оформление меню на сайте WordPress с помощью плагина Макс Мега Меню.
Не забудьте нажать на одну из кнопок, чтобы оценить статью!