От идеи до попадания в самое большое хранилище плагинов! Сквозь боль и страдания

Как я опубликовал плагин в репозитории WordPress

Если ты читал мои предыдущие статьи, то знаешь: я прошёл долгий путь от PHP-плагина к Python-скрипту, от бесконечных ошибок к работающей системе автопостинга новостей. Я переосмыслил стратегию блога, отказался от массовой генерации контента и решил создавать полезные инструменты.

И вот — свершилось!

Мой плагин «Milyutin Code Article Reposter for VK» официально опубликован в репозитории WordPress.org и доступен для скачивания:

🔗 wordpress.org/plugins/milyutin-code-article-reposter-for-vk

Это был долгий и сложный путь. Плагин переделывался с нуля несколько раз. Были моменты, когда я хотел всё бросить и думал, что я себя переоценил в умении общения с ИИ. Но сегодня я хочу рассказать эту историю — от идеи до попадания в самое большое хранилище плагинов в мире. Сквозь боль, страдания и бесконечные правки.

Часть 1. Как начинались боль и страдания

Когда я только задумал этот плагин, идея была простая: автоматически публиковать новые статьи из WordPress-блога в группу ВКонтакте. Чтобы не копировать текст вручную каждый раз. Чтобы подписчики видели анонс с картинкой и ссылкой.

Я написал первую версию на PHP за пару вечеров. Она работала. Плагин брал статью, отправлял в YandexGPT для генерации краткого обзора, получал ответ и публиковал в ВК. Выглядит вроде всё просто.

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

И тут начались страдания и боль…

Часть 2. Первая попытка: отказ и переименование

Milyutin Code Article Reposter for VK
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

Я загрузил плагин на review. Через несколько дней пришло письмо от команды WordPress.org.

Плагин назывался «VK AI Reposter». И это стало первой проблемой.

«VK» — это зарегистрированный товарный знак третьей стороны, и его использование в начале названия может подразумевать официальную принадлежность к VK.

Мне предложили переименовать плагин в «Milyutin Code Article Reposter for VK» — с моим именем в начале, чтобы чётко обозначить, что это неофициальный инструмент.

Я согласился. Изменил название плагина на milyutin-code-article-reposter-for-vk.

Но это было только начало.

Часть 3. Технические требования: что пришлось переделывать

боль и страдания
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

Репозиторий WordPress.org — это не просто «залей и готово». Там строгие правила. И мой плагин их нарушал.

Вот список того, что пришлось исправить:

Подключение скриптов и стилей

Вместо прямого вывода <script> и <style> в коде, нужно использовать wp_enqueue_script() и wp_enqueue_style(). Это стандарт WordPress для производительности и совместимости.

Санитизация и экранирование

Все данные, приходящие из $_GET$_POST$_REQUEST, нужно санитизировать. А все выходные данные — экранировать.

Например, вместо _e('текст', 'domain') нужно использовать esc_html_e('текст', 'domain').

Префиксы для всего

Функции, классы, глобальные переменные, опции — всё должно иметь уникальный префикс, чтобы не конфликтовать с другими плагинами.

Документирование внешних сервисов

Плагин использует API ВКонтакте и YandexGPT. Это нужно чётко описать в readme.txt: какие данные отправляются, куда, зачем, и ссылки на политику конфиденциальности.

Логирование в правильное место

Я писал логи в папку плагина. Это запрещено. Логи нужно хранить в базе данных или в папке wp-content/uploads с защитой от прямого доступа.

Не менять глобальные настройки PHP

set_time_limit(120) на каждом запросе — плохая практика. Нужно ограничивать только те функции, где это действительно необходимо.

Не использовать cURL напрямую

Вместо curl_exec() нужно использовать WordPress HTTP API: wp_remote_get()wp_remote_post().

Интернационализация

Все строки должны быть обёрнуты в функции перевода, но без переменных в качестве текста или домена.

Часть 4. Четыре раунда ревью

боль и страдания
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

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

  • Раунд 1: проблемы с названием, документацией, скриптами, экранированием.

  • Раунд 2: битые ссылки на политику конфиденциальности Yandex.

  • Раунд 3: использование cURL вместо HTTP API и проблемы с экранированием nonce.

  • Раунд 4: финальные правки.

И только после четвёртого раунда пришло письмо:

Congratulations! The plugin was approved.

Часть 5. Загрузка в репозиторий через SVN

Milyutin Code Article Reposter for VK
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

После одобрения нужно было загрузить код через SVN.

Я очистил локальную папку, сделал svn checkout, скопировал файлы в trunk, создал тег tags/1.0.0 и выполнил svn commit.

Через несколько минут плагин появился в репозитории.

Но это получилось со второго раза)

Часть 6. Что умеет плагин сейчас

Плагин «Milyutin Code Article Reposter for VK» автоматически публикует новые статьи из вашего блога в группу ВКонтакте.

Возможности:

  • Автоматическая публикация — срабатывает при публикации поста.

  • Два источника для краткого анонса:

    • YandexGPT — генерирует краткий обзор с помощью нейросети (требуется API-ключ и это платно).

    • Первый абзац — берёт первый абзац статьи. Бесплатно и просто.

  • Загрузка изображений — автоматически находит и загружает обложку, изображение из Gutenberg-блока или первую картинку из контента.

  • Ручная публикация — в редакторе каждого поста есть кнопка «Опубликовать сейчас».

  • Логирование — все действия записываются в отдельный лог-файл, доступный в админке.

Внешние сервисы:

  • VKontakte API — для публикации постов, загрузки фото и получения информации о группе.

  • Yandex GPT API — для генерации анонсов (опционально и платно).

Плагин переведён на Английский и Русский языки.

Часть 7. Что я понял за это время

1. WordPress.org — это серьёзно.

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

2. Каждая ошибка — это урок.

Я никогда не думал о санитизации, экранировании и префиксах так глубоко, как за эти недели. Теперь я понимаю, почему это важно. И главное, теперь я научился писать промпты для ИИ с чётким техническим заданием, а не как писал, когда только начал создавать плагин.

3. Не сдаваться.

Были моменты, когда я хотел всё бросить. Но я продолжал. И это окупилось.

4. Сообщество WordPress — это круто.

Команда ревьюеров помогла мне сделать плагин лучше. Да, процесс был долгим и мучительным, но результат того стоил.

Часть 8. Что дальше?

Плагин уже доступен для скачивания. В планах:

  • Поддержка других социальных сетей (Telegram, ОК, Дзен).

  • Улучшение генерации анонсов.

  • Добавление пагинации и RSS-ленты для новостей.

  • Продолжение изучения SEO без плагинов (в ближайшее время проверю код на тестовом сайте и сразу же перенесу его на этот сайт).

Призыв к действию

Если ты тоже разрабатываешь плагин для WordPress — не бойся трудностей. Да, процесс публикации в официальный репозиторий может быть долгим и болезненным. Но это стоит того.

🔗 Скачай плагин: wordpress.org/plugins/milyutin-code-article-reposter-for-vk

Установи, настрой за 5 минут и забудь о ручном копировании постов в ВК.

Боль и страдания Milyutin Code Article Reposter for VK
Создано с помощью нейросети Алисы YandexART для milyutin-codes.ru

Задавай вопросы, делись идеями, тестируй плагин. Вместе мы строим полезные инструменты!

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

Читай также: Почему я взял паузу в разработке и начал писать статьи

Константин Милютин
Автор блога «Милютин Код»

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *