Добавление плагина в репозиторий WordPress.org

Добавление плагина в репозиторий WordPress.org

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

1. Создание плагина

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

Начнем с имени плагина, предположим, что ваш плагин называется "My Cool Plugin", тогда файлы плагина у вас должны лежать в папке "my-cool-plugin", а главный файл плагина должен называться my-cool-plugin.php. Это не обязательные правила, но лучше их соблюдать во избежание проблем.

Структура папки плагина должна быть такая:

Папка плагина

Это минимальный набор файлов плагина. Папка, файл плагина и файл с описанием плагина readme.txt, о котором подробнее чуть ниже. Убедитесь также, что имя вашего плагина уникально и не занято никем в репозитории.

Теперь вам надо правильно заполнить заголовок своего плагина в начале файла my-cool-plugin.php. Он должен быть примерно таким:

Описание плагина

На всякий случай поясню:

  • Plugin Name - имя плагина.
  • Plugin URI - ссылка на страницу плагина (не обязательно на wordpress.org).
  • Description - описание плагина в админке блога.
  • Version - номер текущей версии плагина.
  • Author - имя или ник автора.
  • Author URI - ссылка на страницу автора.

Это минимальный набор полей для описания плагина. Есть еще и другие поля, но о них я говорить тут не буду. Если вы правильно заполнили эти заголовки, то зайдя в админку блога на вкладку "Плагины" вы увидите:

Описание плагина в админке

Заголовки обязательны для любого плагина, а вот все остальное на ваше усмотрение. Хотя вру – не все. Обязательно включите в файле wp-config.php режим отладки WordPress:

Режим отладки WordPress

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

echo get_settings('blogname');

WordPress тут же вам выдаст:

Сообщение об устаревшей функции

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

При добавлении одного моего плагина в репозиторий ревьювер придрался ко мне из-за функции, которая даже не устарела, а всего лишь не рекомендована к использованию – так что отнеситесь к этому серьезно, чтобы не потратить пару недель (а может быть даже и больше) на правки плагина.

2. Создание файла readme.txt

Файл readme.txt обязателен для любого плагина, который добавляется в репозиторий. Именно из этого файла берется информация, которая будет потом отображаться на сайте репозитория. Структура данного файла для новичка может показаться сложной, поэтому начать стоит с самого простого варианта, например такого:

Простейший readme.txt

Из скриншота вам и так должно быть примерно понятно, что к чему. Но на всякий случай поясню поля заголовка:

  • Contributors – через запятую имена авторов плагина (только имена, под которыми они зарегистрированы на wordpress.org).
  • Tags - теги, по которым возможно будет найти ваш плагин (чем больше и точнее вы укажите тегов - тем лучше).
  • Requires at least - минимальная версия WordPress для вашего плагина (если не уверены, то указывайте номер последней мажорной версии).
  • Tested up to - версия WordPress, на которой тестировался ваш плагин.
  • Stable tag - текущая стабильная версия вашего плагина.

Помимо заголовка в readme.txt используются еще несколько секций:

  • Description – подробное описание плагина, которое будет выводиться на странице плагина в репозитории.
  • Installation – описание процесса установки плагина.
  • Frequently Asked Questions – часто задаваемые вопросы по плагину.
  • Screenshots – описание скриншотов плагина.
  • Changelog – описание изменений плагина в каждой версии.

В файле readme.txt нельзя использовать html-разметку, в нем используется свой синтаксис, примерно похожий на wiki-разметку. Полное описание синтаксиса каждой секции можно найти в этом тестовом файле readme.txt. Если это сложно для вас, то советую скачать какой-нибудь плагин, чье описание в репозитории вам понравилось и посмотреть его файл readme.txt.

Если разобраться с английским текстом для вас сложно, то попробуйте посмотреть файлы readme.txt из моих плагинов Russian Number Comments и WP Russian Quicktags – они целиком на русском языке, так как плагины предназначены только для русскоязычной аудитории. Важное, кстати, замечание – описание вашего плагина может быть целиком на русском языке. Как и на любом другом – репозиторий к этому относится вполне лояльно.

Написали readme.txt? Обязательно проверьте его в валидаторе.

3. Регистрация на wordpress.org

Если вы еще не зарегистрировались на сайте wordpress.org, то самое время это сделать, перейдя по этой ссылке. Регистрация элементарна, так как в форме присутствуют только 2 обязательных поля:

Форма регистрация на wordpress.org

Пароль вы получите на свой email-адрес. Впрочем, я несколько перепутал шаги: при создании файла readme.txt вы уже должны быть зарегистрированы на wordpress.org, чтобы правильно указать поле Contributors в заголовке.

4. Добавление плагина на ревью

После того, как вы провели всю подготовительную работу, можно приступать непосредственно к добавлению вашего плагина в репозиторий. Сделать это можно на этой странице. Я рассмотрю процесс добавления в репозиторий моего собственного плагина Spam Notifier, заполняем поля:

Форма добавления плагина на ревью

Даже если ваш плагин предназначен для русскоязычной аудитории, то вы все равно должны тут указать краткое описание плагина на английском языке. Не знаете английского? Воспользуйтесь автоматическим переводчиком – если использовать короткие фразы, то качество перевода будет достаточным, чтобы ревьювер понял, что именно делает ваш плагин.

Папка вашего плагина должна быть упакована в .zip архив и где-нибудь выложена заранее. Не используйте для хранения архива плагина какие-либо сервисы обмена файлов – ссылка должна быть прямой. И заметьте – архив плагина должен содержать корректно заполненный файл readme.txt в обязательном порядке – иначе вам просто откажут в ревью.

После отправки указанной выше формы вы получите сообщение:

Ожидание очереди на ревью

В сообщении говорится о том, что результат ревью придет на ваш email-адрес. Так же тут говорится о том, что ревьюверы занятые люди и не надо им писать письма с вопросами, пока они сами с вами не свяжутся. Так же приведена статистика, что в данный момент в очереди на ревью находятся 102 плагина, из которых 59 ожидают первоначального ревью. По моему опыту – результат ревью может быть прислан как через один день, так и через неделю. Тут не угадаешь, остается только терпеливо ждать.

5. Ответ от ревьювера

Ответ от ревьювера может быть двух типов. В случае неодобрения вам могут указать на недочеты вашего плагина и предложить исправить их. При таком варианте исправьте то, на что вам указал ревьювер и в ответе на email приложите архив с исправленным плагином (формой добавления плагина на сайте вам больше пользоваться не надо). Если же ваш плагин прошел проверку у ревьювера (после исправлений плагина или сразу),  вы получите такой email:

Положительный ответ от ревьювера

Здесь говорится о том, что ваш плагин был одобрен и вы получите доступ к SVN репозиторию примерно через час после получения письма.

6. Установка программы TortoiseSVN

Для работы с SVN репозиторием я рекомендую программу TortoiseSVN. Это наиболее удобный вариант для работы с SVN из под Windows (не надо использовать командную строку). Так что зайдите на домашнюю страницу этой программы, скачайте нужную версию и установите ее:

Установка TortoiseSVN

Для TortoiseSVN есть русская локализация, но рассматривать я буду английскую версию (и вам советую именно английскую версию), имейте эту в виду.

7. Создание папок

Предлагаю вам создать где-нибудь папку "Plugins", в которой и будут храниться папки ваших плагинов. Внутри этой папки создайте папку вашего плагина. В моем случае, это будет папка "spam-notifier":

Папки

Как вы можете видеть из этого скриншота – в папке "Plugins" у меня хранятся папки всех моих плагинов, добавленных в репозиторий. Программа TortoiseSVN меняет стандартные иконки папок, показывая вам, какие папки синхронизированы с репозиторием, а какие нет. Папка "spam-notifier" пока что пустая, ее надо синхронизировать с репозиторием. Для этого кликните на ней правой кнопкой мышки и выберите пункт меню "SVN Checkout...":

Меню SVN Checkout...

Программа выдаст вот такое окно, в котором вам надо указать ссылку на репозиторий вашего плагина (этот урл вы можете скопировать из письма, полученного вами после одобрения вашего плагина):

Указываем ссылку на репозиторий плагина

Указали ссылку? Кликаем на кнопку "OK". Плагин синхронизирует папки:

Синхронизация папок закончена

Папка "spam-notifier" получит следующую структуру:

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

На этом с подготовкой папок работа закончена.

8. Подготовка файлов плагина

Теперь вам необходимо скопировать все файлы своего плагина в под-папку "trunk", то есть структура получится такая:

Файлы плагина в папке trunk

В репозитории wordpress.org некоторые плагины выводятся на странице с баннером в верхней части. Например, баннер плагина Contact Form 7:

Баннер в репозитории

Вы тоже можете создать такой баннер для вывода на странице своего плагина в репозитории. Создать его легко – это просто картинка .png с размерами 772 на 250 пикселей и точным названием banner-772x250.png. Создали такой баннер? Положите его в папку "assets"":

Баннер в папке assets

9. Синхронизация файлов плагина с репозиторием

Вся подготовительная работа закончена, пора выкладывать плагин в репозиторий. Для этого кликаем правой кнопкой мышки на папке вашего плагина и выбираем пункт меню "SVN Commit…":

Commit файлов плагина

После клика на "SVN Commit…" откроется такое окно:

Выбор файлов для Commit

Здесь вы должны указать комментарий, касающийся апдейта файлов плагина. При первом добавлении плагина можно указать что-то типа "add plugin". При дальнейших апдейтах плагина можно писать что-то вроде "update plugin" или "update readme.txt" или что-то в этом духе. Комментарий обязателен при любом обновлении ваших файлов в репозитории.

По умолчанию ни один из файлов не выбран – так что кликайте на "All", чтобы выбрать все файлы. Заполнили информацию? Кликайте на "OK", начнется синхронизация файлов с репозиторием, по окончании вы увидите такое окно:

Файлы плагина синхронизированы

На каком-то из этапов синхронизации программа TortoiseSVN попросит вас сообщить ей логин и пароль от SVN репозитория. Вы должны указать тот логин и пароль, который вы указали при регистрации на сайте wordpress.org. Я пропустил этот момент, так как у меня программа TortoiseSVN сохранила логин и пароль при добавлении других моих плагинов в репозиторий и больше его не спрашивает. Но вы имейте в виду, что программа обязательно их спросит.

10. Проверка результатов

Если все прошло удачно, то через несколько минут ваш плагин станет доступен в репозитории по ссылке http://wordpress.org/plugins/spam-notifier/ (вместо spam-notifier подставьте папку своего плагина):

Страница плагина Spam Notifier в репозитории

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

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

Понравился пост? Подпишись на обновления по Обновления блога по RSSRSS или Обновления блога на TwitterTwitter !

Комментарии (всего 23 комментария)
Написать комментарий

(обязательно)

(обязательно, не публикуется)

Для вставки кода используйте кнопку "Код", по умолчанию используется синтаксис подсветки языка "php", вы можете поменять его на любой другой поддерживаемый GeSHi язык, например "javascript", "css", "html4strict", "sql" и тд. Используйте предпросмотр!
 


Подписаться на уведомления без комментирования.