Низкий уровень обучения в разработке плагинов WordPress означает, что не существует единого окончательного способа создания плагина. Плагин может быть таким же простым, как отдельный файл, такой как Hello Dolly , или его структура может быть настолько сложной, насколько это необходимо для удовлетворения различных требований и функциональности. WordPress Plugin Boilerplate призван обеспечить стандартизированную высококачественную основу для создания вашего следующего потрясающего плагина.
В этой первой части серии мы подробно рассмотрим шаблон, в том числе структуру файлов и папок, а также организацию кода шаблонов.
Фон
Шаблонный модуль плагинов WordPress изначально был инициативой Тома Макфарлина (Tom McFarlin) по предоставлению стандартизированного объектно-ориентированного подхода к созданию плагинов WordPress. Поскольку шаблон построен на основе API-интерфейса подключаемого модуля и соответствует стандартам кодирования и стандартам документации, рекомендованным WordPress, вы можете быть уверены, что находитесь в надежных руках.
Недавнее обновление шаблона до версии 3.0.0 вносит существенные улучшения в сам шаблон с точки зрения организации кода, а также дальнейшего разделения проблем в вашем плагине. Если вы уже знакомы с разработкой своего плагина с использованием предыдущей версии стандартного шаблона (v2.6.2), вам может потребоваться некоторое время, чтобы переучиться, что нового в последней версии, которая включает новую структуру папок.
Этот шаблон больше не поддерживается самим Томом Макфарлином (на момент написания статьи), он передал факел Девину Винсону. Разработка продолжается, как обычно, поэтому, если у вас есть какие-либо проблемы, не стесняйтесь сообщать о них в репозитории GitHub . Вклад также определенно приветствуется.
Получить себе копию
Самый простой способ получить копию шаблона плагина WordPress — это клонировать сам репозиторий git.
git clone https://github.com/DevinVinson/WordPress-Plugin-Boilerplate.git
Или вы всегда можете скачать zip-копию из репозитория GitHub.
Поскольку версия 3.0.0 была выпущена, плагин не может быть просто скопирован в ваш wp-content/plugins
Это связано с тем, что фактический исходный код плагина не содержится в корневом каталоге, а фактически находится в подкаталоге с именем trunk
Не беспокойтесь об этом сейчас, мы поговорим о новой структуре папок позже в этой статье.
Полные подробные инструкции о том, как правильно установить шаблон, описаны в файле README.md
В двух словах, вы можете:
- Скопируйте каталог
trunk
wp-content/plugins
- Скопируйте весь каталог шаблонов, а затем создайте символическую ссылку для подкаталога
trunk
wp-content/plugins/<plugin-name>/
Создание символической ссылки зависит от используемой вами операционной системы.
Как только вы это сделаете, вы должны найти плагин WordPress Plugin Boilerplate
Просто активируйте плагин и все готово!
Использование онлайн-генератора для настройки плагина
После активации у вас будет своего рода ванильный плагин, который на самом деле ничего не делает — то есть, пока. Вам также нужно будет выполнить поиск и замену всей кодовой базы, и этот процесс может быть очень утомительным и длительным. К счастью, Энрике Чавес построил неофициальный генератор , который может автоматизировать процесс. Просто зайдите на http://wppb.me/ и заполните форму, расположенную в нижней части страницы, чтобы создать персонализированную копию шаблона плагина WordPress.
Структуры папок
Давайте подробнее рассмотрим, как организован шаблонный плагин WordPress версии 3.0.0 по сравнению со старым. Как упоминалось ранее, фактический код плагина содержится в подкаталоге с именем trunk
Это должно соответствовать стандартам, используемым в официальном репозитории плагинов WordPress, который содержит три основных каталога: assets
branches
trunk
В шаблоне уже есть два из них, assets
trunk
Вот полный каталог и файлы, содержащиеся в шаблоне, на момент написания:
|-- plugin-name/
| |-- assets/
| | |-- banner-772x250.png
| | |-- icon-256x256.png
| | |-- screenshot-1.png
| |
| |-- trunk/
| |-- admin/
| | |-- css/
| | | |-- plugin-name-admin.css
| | |-- js/
| | | |-- plugin-name-admin.js
| | |-- partials/
| | | |-- plugin-name-admin-display.php
| | |
| | |-- class-plugin-name-admin.php
| | |-- index.php
| |
| |-- includes/
| | |-- class-plugin-name-activator.php
| | |-- class-plugin-name-deactivator.php
| | |-- class-plugin-name-i18n.php
| | |-- class-plugin-name-loader.php
| | |-- class-plugin-name.php
| | |-- index.php
| |
| |-- languages/
| | |-- plugin-name.pot
| |
| |-- public/
| | |-- css/
| | | |-- plugin-name-public.css
| | |-- js/
| | | |-- plugin-name-public.js
| | |-- partials/
| | | |-- plugin-name-public-display.php
| | |
| | |-- class-plugin-name-public.php
| | |-- index.php
| |
| |-- LICENSE.txt
| |-- README.txt
| |-- index.php
| |-- plugin-name.php
| |-- uninstall.php
|
|-- .gitignore
|-- CHANGELOG.md
|-- README.md
Вот небольшое объяснение того, что делает каждый файл и папка:
-
.gitignore
Обеспечивает нормальный .gitignore по умолчанию для большинства вещей, которых не должно быть в вашем git-хранилище.
-
CHANGELOG.md
Стандартный список изменений изменений в шаблоне с датой изменения.
-
README.md
Полезное руководство по началу работы, в котором перечислены инструкции по установке, а также некоторые другие разделы, такие как рекомендации по инструментам и кредиты.
-
assets
Этот каталог содержит рекомендуемые ресурсы, которые вам необходимо предоставить, когда вы решите опубликовать свой плагин в хранилище плагинов WordPress. Все изображения, содержащиеся в этом каталоге, являются рекомендованным разрешением для публикации.
-
trunk
Это актуальный плагин, который вы собираетесь разрабатывать. Есть несколько папок, которые разделяют кодовую базу между администратором и общедоступной функциональностью. Мы подробно рассмотрим, что представляет каждый подкаталог.
-
admin
В каталоге
admin
css
js
partials
Как следует из названия, все функциональные возможности администратора должны быть размещены здесь. По умолчаниюplugin-name-admin.js
plugin-name-admin.css
wp-admin
class-plugin-name-admin.php
-
public
Этот каталог очень похож на то, что может предложить каталог
admin
public
-
languages
Начальный файл
.pot
-
includes
Это, вероятно, где почти вся магия происходит. По умолчанию включены пять начальных классов, которые мы обсудим позже в следующем разделе.
-
LICENSE.txt
Копия лицензии GPL v2 включена по умолчанию.
-
README.txt
Отправная точка для вашего файла плагина README. Этот файл довольно охватывает все разделы, которые вы можете заполнить, чтобы обеспечить хорошую страницу плагина в хранилище плагинов WordPress.
-
plugin-name.php
Точка входа для вашего плагина. Здесь включен общий заголовок файла плагина, который вы можете изменить по своему вкусу.
register_activation_hook
register_deactivation_hook
-
Включенные классы
Как упоминалось ранее, в каталоге trunk/includes
Давайте посмотрим, что делает каждый из них:
-
class-plugin-name-activator.php
Этот класс создается во время активации плагина. Он имеет только один статический метод,
activate()
register_activation_hook
Используйте этот класс всякий раз, когда вам нужно что-то сделать при активации плагина, например, при создании пользовательских таблиц или сохранении параметров по умолчанию. -
class-plugin-name-deactivator.php
Аналог для
class-plugin-name-deactivator.php
Он также содержит только один статический метод,deactivate()
-
class-plugin-name-i18n.php
Отправная точка для функциональности i18n вашего плагина. У него есть одно свойство,
$domain
Это свойство можно установить с помощью открытого методаset_domain()
Наконец, методload_plugin_textdomain()
-
class-plugin-name-loader.php
Вероятно, самый важный класс в шаблоне. Он содержит два свойства,
$actions
$filters
Он предоставляет две простые функции-оболочки,add_action()
add_filter
$actions
$filters
Это не следует путать с функциямиadd_action()
add_filter()
Все хуки будут зарегистрированы только во время другого методаrun()
-
class-plugin-name.php
Класс, который склеивает все части вместе. Он содержит важную информацию о плагине, такую как имя и версия плагина. Кроме того, он загрузит зависимости, используя метод
load_dependencies()
set_locale()
Все административные и публичные хуки, которые были ранее зарегистрированы, также могут быть определены здесь.Этот класс также предоставляет простые методы
get
get_plugin_name()
get_version()
get_loader()
class-plugin-name-loader.php
Вывод
Короче говоря, шаблон плагинов WordPress обеспечивает потрясающую отправную точку для разработчиков плагинов. Он соответствует рекомендуемым стандартам кодирования WordPress, а также стандартам документации WordPress, так что вы знаете, что начинаете с правильной ноги. Кроме того, публикация в хранилище плагинов WordPress упрощена, так как шаблон уже предоставляет большую часть того, что вам нужно.
Как только мы познакомимся с организацией кода и структурой папок, мы рассмотрим, как разработать настоящий плагин с использованием шаблона плагина WordPress во второй части серии.