Для не кодеров, создающих сайт WordPress, виджеты отлично подходят. Они позволяют добавлять меню, списки, каналы, текст и многое другое в области виджетов, которые не обязательно должны быть ограничены боковой панелью. Многие темы теперь содержат области виджетов в нижнем колонтитуле, а в каркасах больших тем часто есть области виджетов в разных местах, таких как заголовок и до и после содержимого.
В этой серии из пяти частей я проведу вас через шаги, необходимые для создания вашего первого виджета. Серия будет охватывать:
- Введение в виджеты и API виджетов
- Кодирование и регистрация вашего виджета
- Построение вашего виджета
- Создание формы для вашего виджета
- Отображение вашего виджета в правильной области виджета
В этой части я познакомлю вас с виджетами и API виджетов .
Создание виджетов
Для создания виджета вы расширяете класс WP_Widget
, который включает в себя ряд функций:
- функция для обработки виджета
- функция для отображения формы для виджета на экране панели виджетов
- функция, позволяющая пользователям обновлять настройки виджета
- функция для вывода виджета в любую область виджета, к которой он добавлен.
В дополнение к этому вы используете функцию register_widget()
для регистрации созданного вами виджета.
Вы можете поместить в виджет практически все, что захотите — статический текст, вывод из запроса к базе данных, фид с другого сайта и многое другое. Однако важно помнить, что пользователи будут ожидать, что виджеты поместятся в определенной области на странице, поэтому вывод вашего виджета не должен быть слишком большим.
WordPress поставляется с массивом встроенных виджетов , поэтому, прежде чем приступить к написанию своего собственного, убедитесь, что его нет в ядре WordPress.
В этой серии я собираюсь создать виджет из плагина, который я разработал для более раннего урока, по созданию контекстно-зависимой боковой навигации . В этом уроке я разработал функцию, которую пользователи с некоторым знанием кода могли бы вставить в свою тему или прикрепить к крючку, но пользователям было бы легче, если бы они могли добавить навигацию через виджет.
API виджетов
API виджетов включает в себя функции, необходимые для создания виджета. Давайте посмотрим на каждого из них.
Во-первых, есть четыре функции виджета:
-
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
. Это класс конструктора, который вы можете расширить для создания дополнительных виджетов.
Резюме
Надеемся, что это вводное руководство разожгло ваш аппетит к созданию собственных виджетов. В следующем уроке я покажу вам, как кодировать ваш виджет и регистрировать его .