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

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

С технической стороны, виджет в платформе 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 с помощью плагина Макс Мега Меню.

Не забудьте нажать на одну из кнопок, чтобы оценить статью!

Оставьте комментарий