Статьи

Ускорьте разработку с помощью WordPress Plugin Boilerplate

Низкий уровень обучения в разработке плагинов WordPress означает, что не существует единого окончательного способа создания плагина. Плагин может быть таким же простым, как отдельный файл, такой как Hello Dolly , или его структура может быть настолько сложной, насколько это необходимо для удовлетворения различных требований и функциональности. WordPress Plugin Boilerplate призван обеспечить стандартизированную высококачественную основу для создания вашего следующего потрясающего плагина.

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

WordPress плагин 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 В двух словах, вы можете:

  • Скопируйте каталог trunkwp-content/plugins
  • Скопируйте весь каталог шаблонов, а затем создайте символическую ссылку для подкаталога trunkwp-content/plugins/<plugin-name>/ Создание символической ссылки зависит от используемой вами операционной системы.

Как только вы это сделаете, вы должны найти плагин WordPress Plugin Boilerplate Просто активируйте плагин и все готово!

Использование онлайн-генератора для настройки плагина

После активации у вас будет своего рода ванильный плагин, который на самом деле ничего не делает — то есть, пока. Вам также нужно будет выполнить поиск и замену всей кодовой базы, и этот процесс может быть очень утомительным и длительным. К счастью, Энрике Чавес построил неофициальный генератор , который может автоматизировать процесс. Просто зайдите на http://wppb.me/ и заполните форму, расположенную в нижней части страницы, чтобы создать персонализированную копию шаблона плагина WordPress.

Структуры папок

Давайте подробнее рассмотрим, как организован шаблонный плагин WordPress версии 3.0.0 по сравнению со старым. Как упоминалось ранее, фактический код плагина содержится в подкаталоге с именем trunk

Это должно соответствовать стандартам, используемым в официальном репозитории плагинов WordPress, который содержит три основных каталога: assetsbranchestrunk В шаблоне уже есть два из них, assetstrunk

Вот полный каталог и файлы, содержащиеся в шаблоне, на момент написания:

 |-- 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

      В каталоге admincssjspartials Как следует из названия, все функциональные возможности администратора должны быть размещены здесь. По умолчанию plugin-name-admin.jsplugin-name-admin.csswp-admin class-plugin-name-admin.php

    • public

      Этот каталог очень похож на то, что может предложить каталог adminpublic

    • languages

      Начальный файл .pot

    • includes

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

    • LICENSE.txt

      Копия лицензии GPL v2 включена по умолчанию.

    • README.txt

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

    • plugin-name.php

      Точка входа для вашего плагина. Здесь включен общий заголовок файла плагина, который вы можете изменить по своему вкусу. register_activation_hookregister_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() Все административные и публичные хуки, которые были ранее зарегистрированы, также могут быть определены здесь.

    Этот класс также предоставляет простые методы getget_plugin_name()get_version()get_loader()class-plugin-name-loader.php

Вывод

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

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