Добавление плагина в репозиторий 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:
Режим отладки покажет вам, если вы используете какую-то устаревшую функцию движка. В качестве примера попробуйте вставить в плагин код:
echo get_settings('blogname'); |
WordPress тут же вам выдаст:
В этом сообщении говорится, что функция get_settings давно устарела и вам надо ее заменить функцией get_option. Это важно не потому, что функция не будет работать (она будет работать), а потому, что ревьювер вашего плагина обязательно проверит его на наличие устаревших функций и вы не получите разрешение на размещение плагина в репозитории, пока не замените все устаревшие функции на их новые аналоги.
При добавлении одного моего плагина в репозиторий ревьювер придрался ко мне из-за функции, которая даже не устарела, а всего лишь не рекомендована к использованию – так что отнеситесь к этому серьезно, чтобы не потратить пару недель (а может быть даже и больше) на правки плагина.
2. Создание файла 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 обязательных поля:
Пароль вы получите на свой 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 есть русская локализация, но рассматривать я буду английскую версию (и вам советую именно английскую версию), имейте эту в виду.
7. Создание папок
Предлагаю вам создать где-нибудь папку "Plugins", в которой и будут храниться папки ваших плагинов. Внутри этой папки создайте папку вашего плагина. В моем случае, это будет папка "spam-notifier":
Как вы можете видеть из этого скриншота – в папке "Plugins" у меня хранятся папки всех моих плагинов, добавленных в репозиторий. Программа TortoiseSVN меняет стандартные иконки папок, показывая вам, какие папки синхронизированы с репозиторием, а какие нет. Папка "spam-notifier" пока что пустая, ее надо синхронизировать с репозиторием. Для этого кликните на ней правой кнопкой мышки и выберите пункт меню "SVN Checkout...":
Программа выдаст вот такое окно, в котором вам надо указать ссылку на репозиторий вашего плагина (этот урл вы можете скопировать из письма, полученного вами после одобрения вашего плагина):
Указали ссылку? Кликаем на кнопку "OK". Плагин синхронизирует папки:
Папка "spam-notifier" получит следующую структуру:
На этом с подготовкой папок работа закончена.
8. Подготовка файлов плагина
Теперь вам необходимо скопировать все файлы своего плагина в под-папку "trunk", то есть структура получится такая:
В репозитории wordpress.org некоторые плагины выводятся на странице с баннером в верхней части. Например, баннер плагина Contact Form 7:
Вы тоже можете создать такой баннер для вывода на странице своего плагина в репозитории. Создать его легко – это просто картинка .png с размерами 772 на 250 пикселей и точным названием banner-772x250.png. Создали такой баннер? Положите его в папку "assets"":
9. Синхронизация файлов плагина с репозиторием
Вся подготовительная работа закончена, пора выкладывать плагин в репозиторий. Для этого кликаем правой кнопкой мышки на папке вашего плагина и выбираем пункт меню "SVN Commit…":
После клика на "SVN Commit…" откроется такое окно:
Здесь вы должны указать комментарий, касающийся апдейта файлов плагина. При первом добавлении плагина можно указать что-то типа "add plugin". При дальнейших апдейтах плагина можно писать что-то вроде "update plugin" или "update readme.txt" или что-то в этом духе. Комментарий обязателен при любом обновлении ваших файлов в репозитории.
По умолчанию ни один из файлов не выбран – так что кликайте на "All", чтобы выбрать все файлы. Заполнили информацию? Кликайте на "OK", начнется синхронизация файлов с репозиторием, по окончании вы увидите такое окно:
На каком-то из этапов синхронизации программа TortoiseSVN попросит вас сообщить ей логин и пароль от SVN репозитория. Вы должны указать тот логин и пароль, который вы указали при регистрации на сайте wordpress.org. Я пропустил этот момент, так как у меня программа TortoiseSVN сохранила логин и пароль при добавлении других моих плагинов в репозиторий и больше его не спрашивает. Но вы имейте в виду, что программа обязательно их спросит.
10. Проверка результатов
Если все прошло удачно, то через несколько минут ваш плагин станет доступен в репозитории по ссылке http://wordpress.org/plugins/spam-notifier/ (вместо spam-notifier подставьте папку своего плагина):
Собственно, на этом все. У SVN есть куча возможностей, в которые я не стал вникать подробно. Если вам нужны подробности по таггингу версий плагина в репозитории и прочим нюансам, то ищите эту информацию в гугле.
Свой первый примитивнейший плагин для WordPress я написал около 6 лет назад, но потихоньку добавлять свои плагины в репозиторий я стал только с месяц назад – и все потому, что не мог раньше найти понятной инструкции, описывающей этот процесс. Надеюсь, что эта статья вам поможет, и вы сможете выложить свой плагин в репозиторий без каких-либо проблем.
Понравился пост? Подпишись на обновления по RSS или Twitter !
#21,
Пытаюсь загрузить свой плагин на проверку, но получаю вот такую ошибку:
Ошибка: плагин имеет неподдерживаемое имя. Plugin names may only contain latin letters (A-z), numbers, spaces, and hyphens. Please change the Моё название на русском line in your main plugin file and readme, then you may upload it again.
Но в каталоге плагинов существуют плагины с названиями на русском ( в Plugin Name: Название на русском, и в readme.txt тоже такое же название ), подскажите в чём может быть проблема ?
правила поменялись ? теперь нельзя на кириллице называть плагины ?
#22,
вероятно. это не суть важно - вы потом сможете перевести на русский язык название своего плагина в glotpress. то есть в поиске ваш плагин смогут найти по русскому названию.
#23,
спасибо за ответ!
ввёл в заблуждения старый плагин, где имя его на русском изначально, а не через перевод ( название писать не буду чтоб рекламой не посчитали )