Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress
Code

Введение в создание вашего первого виджета для WordPress

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Introduction to Creating Your First WordPress Widget.
Coding and Registering Your WordPress Widget

Russian (Pусский) translation by blacktreelab (you can also view the original English article)

Виджеты - вот с чего стоит начать не-кодерам создание сайтов на WordPress.  Виджеты позволяют добавлять меню, списки, ленты, текст и многое другое в поле виджетов, и это необязательно должна быть боковая панель. Во многих темах виджеты теперь добавляются в footer (прим. переводчика: footer - нижняя часть шаблона страницы; в некоторых источниках footer переводиться как "подвал"), а большие фреймворки тем часто имеют виджеты в разных местах, как например, в заголовке (header), и, до и после содержания.

В данной серии из пяти частей мы создадим ваш первый виджет. Данная серия содержит:

В данной части я познакомлю вас с виджетами и интерфейсом виджетов.

Создание виджета

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

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

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

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

WordPress содержит большое количество встроенных виджетов, так что перед тем как начать создавать свой виджет, стоит проверить нет ли подобного виджета уже в WordPress.

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

Виджет интерфейс

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

Во-первых, есть четыре функции виджетов:

  • is_active_widget(): условный тег, который проверяет, если отдельный виджет активен. Не путайте эту функцию с функцией is_active_sidebar(), которая проверяет, добавлен ли виджет в область виджетов.
  • the_widget(): тег шаблона, который отображает виджет за пределами области виджетов.
  • register_widget(): функция, регистрирующая виджет; ее мы будем использовать дальше в данной серии.
  • unregister_widget(): отмена регистрации виджета, это означает, что виджет больше не доступен пользователям через панель виджетов.

Есть также пять внутренних функций:

  • wp_register_widget_control(): создает элементы управления на панели виджетов, так чтобы пользователи могли вносить изменения в настройки виджета.
  • wp_unregister_widget_control(): регистрация элемента управления виджета, который был зарегистрирован через wp_register_widget_control().
  • wp_convert_widget_settings(): преобразует форму параметров виджета из одиного экземпляра в мульти-виджеты.
  • wp_get_widget_defaults(): основная функция, не предназначенная для использования в разработке плагинов или тем.
  • wp_widget_description(): создает описание виджета, которое будет отображаться на панели виджетов.

Для доступа к этим внутренним функциям мы воспользуемся классом WP_Widget. Это класс конструктор, который вы можете расширить для создания виджетов.

Резюме

Надеюсь данный вводный урок пробудил у вас интерес к созданию собственного виджета. В следующем уроке я покажу как написать и зарегистрировать виджет.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.