Добавление плагина в репозиторий 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 !
Www.mobius-sklad.ru/hranenie-veschey хранение мебели www.mobius-sklad.ru/hranenie-veschey www.mobius-sklad.ru |
#1,
Лукавите автор, вот тут вполне сносная статья и ей вполне можно руководствоваться при добавлении плагинов.
#2,
неплохая статья, но все-таки она от 2007 года - как-то руководствоваться гайдом 7-летней давности боязно :)
#3,
У вас статья устарела даже раньше, чем была опубликована :-) В версии 4.0 у плагинов будут свои иконки, а вы о них ничего не написали, только о баннере на странице плагина.
#4,
ага, чуточку я поспешил ее написать, а потом уже править не стал. а с иконками и так все понятно, в папку assets надо положить 3 файла: icon.svg, icon-128x128.png, icon-256x256.png. не знаю, в каком случае используется иконка в формате .svg, но вот иконки с указанным размером уже сейчас отображаются, если искать в репозитории название плагина.
#5,
Спасибо за статью, поставил закладку - пригодится в будущем.
#6,
Мне кажется, что все, кто пишут плагины и так прекрасно себе представляют, что такое SVN и как им пользоваться. Английский язык для программистов не может быть проблемой, иначе они не могут называться программистами.
#7,
английский язык это одно, а SVN совсем другое. могу вас уверить, что в университетах это не изучают. да и в любом случае, инструкция на родном языке всегда более удобна.
#8,
Flector, спасибо Вам за статью!
Очень помогла!
#9,
Спасибо за статью! Пока не помогла (все еще стесняюсь воспользоваться), но, надеюсь, поможет.
Я вот хочу выложить свой простенький плагин ката (cut) для WordPress в стиле ката Живого Журнала и его клонов (LJR, DW и т.д.). Можно ли выложить, или не стоит даже заморачиваться? На форумах иногда спрашивают такой кат, поскольку родной Вордпрессовский ну совсем какой-то печально резкий...
Вот ссылка на код на гитхабе
https://github.com/tolik-punkoff/lj-cut-style-wp-plugin
И ссылка на заметку по его написанию
http://tolik-punkoff.com/2016/11/08/cut-v-stile-livejournal-v-bloge-wordpress/
С уважением, Толик
#10,
ну а почему бы и нет?
я, правда, реально не знаю, кто им будет пользоваться - обычные спойлеры вполне справляются с задачей, но если плагин нужен хотя бы одному человеку - почему бы не выложить?
#11,
Очень плохо, что автор не написал, что делать с похожими названиями. Уже 2 часа бьюсь, а он мне все заладил: "Error: The plugin already exists. There is already a plugin called wp-store by a different author. Please change the Plugin Name: line in your main plugin file and upload it again."
Даже очень сложные и разные названия перепробовал. Возможно не там меняю название, хорошо бы и это осветить.
#12,
имеется ввиду папка плагина, то есть слаг.
проверять - https://wordpress.org/plugins/akismet/
вместо akismet подставьте папку вашего плагина.
#13,
Отправлял сегодня им плагин. Теперь никакой формы. Просто выбор и загрузка архива с плагином.
По ходу там на лету проверяется. Ругнулся на имя плагина в главном файле. Типа слово wordpress использовать запрещено и только на латинице.
А как же некоторые плагины в админке на русском? Или это надо перевод мутить?
#14,
Имеется в виду названия плагина из главного файла. Строка
Plugin Name:.........
#15,
ну это всегда так было.
на русском плагины только благодаря переводу - так названия только на английском у всех плагинов.
#16,
Уф. Разместил. Быстро отвечают. На следующий же день.
А иконка в какой папке должна лежать, чтобы вместо квадрата отображалась?
#17,
P.S. Под формой комментариев ошибка плагина
#18,
папка assets - файл icon-256x256.png
а точнее?
#19,
И где там сносная статья? Ссылка то не открывается а здесь все ясно и понятно.
#20,
Спасибо, как раз для знакомого пишу интересную штуку, думаю будет полезна ещё очень многим, учитывая что нет бесплатных аналогов (есть, но функционал везде немного не тот, что нужен...).
Добавил ваш сайт в закладки, обязательно воспользуюсь инструкциями. Вы только знайте что сюда по-прежнему заходят, и обновляйте статью почаще =) например как вот с этими иконками...