Привет, друг!
Меня зовут Константин Милютин. Если ты читал мой прошлый пост, то знаешь, что я — обычный парень из 1985 года, который работал на заводе, продавал автозапчасти, а сейчас вожу такси, чтобы выкроить время для мечты. Моя мечта — создавать полезные программы. И я на полном серьёзе взялся за амбициозный проект: плагин для WordPress, который автоматически собирает новости из RSS, переписывает их через нейросети, генерирует картинки, заполняет SEO и публикует на сайт.
Звучит как магия, да? Я тоже так думал. Но с помощью DeepSeek я буквально за несколько дней написал почти 2000 строк кода, настроил структуру, вкладки, формы, интеграцию с API YandexGPT и YandexART. Всё выглядит идеально. Меню в админке — как у топовых плагинов. Логи пишутся, настройки сохраняются, cron-задача планируется. Красота!
Но есть один нюанс. Проверить работоспособность я пока не могу — ошибка. Где-то зарылась маленькая, хитрая нестыковка, которая не даёт плагину запуститься. Но я не расстраиваюсь. Наоборот — это самое интересное! Мы с DeepSeek уже начали охоту на баг, и она обещает быть увлекательной.
Сегодня я расскажу, как создавался этот плагин, почему я в восторге от результата, даже несмотря на ошибку, и какую интригу мы оставим для следующей статьи.
Откуда взялась идея и почему DeepSeek
Я веду блог milyutin-codes.ru, где делюсь кодом, мыслями и ошибками. Но вести блог — это полдела. Нужно публиковать свежие новости, чтобы сайт был живым. А где взять время, если я таксист и свободные минуты — только между заказами?
Я решил автоматизировать рутину: пусть машина собирает новости из RSS, переписывает их (чтобы не было копипаста), придумывает заголовки, теги, даже картинки генерирует. Всё это можно сделать через YandexGPT и YandexART. Оставалось только «склеить» их с WordPress.
Но я — не профессиональный PHP-разработчик. Основы знаю, но писать сложный плагин с нуля — страшно. И тут я вспомнил про DeepSeek. Я уже использовал его для обучения, и он всегда выдавал понятные, структурированные решения. Я решил: «А давай попробуем создать плагин вместе».
Первый диалог: как DeepSeek спроектировал архитектуру

Я открыл чат и сформулировал задачу максимально чётко: «Ты — PHP-разработчик с опытом создания плагинов для WordPress. Ты пишешь чистый, задокументированный код. Ты понимаешь, что этот плагин будет создаваться с помощью ИИ-помощника (меня), и код должен быть максимально понятным, с комментариями, чтобы я мог легко объяснять его другим. Задача: Создать каркас плагина для WordPress под названием Autonews Publisher».
DeepSeek не просто выдал кусок кода — он спроектировал полноценную архитектуру:
text
autonews-publisher/ ├── autonews-publisher.php # Главный файл ├── includes/ │ ├── class-settings.php # Настройки (8 вкладок!) │ ├── class-rss-fetcher.php # Парсинг RSS │ ├── class-yandex-gpt.php # YandexGPT и YandexART │ ├── class-publisher.php # Публикация постов │ ├── class-logger.php # Логи в БД │ ├── class-cron.php # Планировщик │ └── class-email.php # Уведомления ├── assets/ │ ├── css/admin.css │ └── js/admin.js
Он сразу разбил функционал на классы, чтобы код был модульным и поддерживаемым. Каждый класс получил подробные комментарии на русском языке — я мог разобраться даже в сложных местах.
Как мы создавали каждую часть (и почему она выглядит идеально)

1. Страница настроек — как в дорогих плагинах
DeepSeek предложил использовать стандартные API WordPress: add_settings_section, add_settings_field, register_setting. Он создал восемь вкладок: Общие, RSS, Публикация, SEO, Внутренние ссылки, Уведомления, Планировщик, Логи.
Каждое поле — с неце-защитой, валидацией и санитизацией. Например, для API-ключа используется тип password, для RSS — таблица с добавлением/удалением, для выбора рубрики — wp_dropdown_categories. Всё выглядит аккуратно и профессионально.
Особенно порадовала вкладка «Логи»: таблица с датой, статусом, сообщением и ссылкой на пост, кнопки «Очистить» и «Экспорт CSV». Это уровень коммерческих решений.
2. RSS-парсер с обработкой ошибок
Класс Autonews_RSS_Fetcher использует wp_remote_get и SimpleXML. Если лента недоступна или пустая, он пишет в лог и не падает. Это важно для стабильности.
3. Интеграция с YandexGPT — настоящий хардкор
DeepSeek написал методы для генерации заголовка, рерайта, ALT-тега и тегов. Он использовал официальный API Yandex: https://llm.api.cloud.yandex.net/llm/v1alpha/instruct. В запросах — заголовки с Api-Key и Folder ID, обработка ошибок, таймауты. Я просто вставил свои ключи — и всё заработало на уровне тестов.
4. Генерация изображений через YandexART — асинхронность

Это была самая сложная часть. YandexART работает асинхронно: сначала отправляешь запрос, получаешь operation_id, потом опрашиваешь статус. DeepSeek реализовал цикл с паузой 5 секунд (до 60 попыток), затем декодирует Base64, сохраняет файл и регистрирует его в медиатеке через wp_insert_attachment. Всё как в документации, только сразу готово к использованию.
5. Публикация — главный герой
Класс Autonews_Publisher объединяет всё:
- Создаёт пост с переписанным заголовком и контентом.
- Автоматически определяет рубрику (по ключевым словам — О компании, О человеке, Об ИИ, Об изобретении, Об исследовании).
- Добавляет теги (не больше заданного числа).
- Генерирует картинку через YandexART и устанавливает обложку.
- Заполняет Rank Math (заголовок, описание, фокусный ключевик).
- Добавляет внутренние ссылки (блок «Читайте также»).
- Добавляет ссылку на источник.
- Учитывает задержку и статус (опубликовано/черновик).
- Пишет логи и отправляет email-уведомления.
Всё это выглядит как идеальный конструктор — каждый шаг продуман, все опции вынесены в настройки.
6. Планировщик — простота и надёжность
DeepSeek реализовал интеграцию с WP-Cron. При активации плагина ставится задача, при деактивации — удаляется. Частота и лимит новостей регулируются из админки.
Ошибка, которая делает историю живой
Когда я собрал все файлы и загрузил их на сервер, я ожидал, что плагин взлетит. Меню появилось. Настройки открылись. Вкладки переключались. Всё выглядело безупречно.
Но при попытке выполнить публикацию (вручную или по крону) — тишина. В логах пусто. Пост не создаётся. Где-то зарылась ошибка, которая не даёт завершить процесс.

Я проверил права доступа, логи, конфигурацию сервера — всё ок. Значит, проблема в логике. И это нормально. В программировании баги — это не катастрофа, а часть пути.
DeepSeek уже предложил несколько гипотез: возможно, неправильно передаются настройки, или API возвращает не тот формат, или не срабатывает хук cron. Мы начали пошаговую отладку. Я вставляю error_log, вывожу переменные, проверяю ответы от Yandex. Это кропотливая работа, но она даёт бесценный опыт.
Почему я всё равно в восторге
Даже с ошибкой я считаю проект успешным. Потому что:
- Визуал и структура — на 10 из 10. Меню, вкладки, формы — всё сделано красиво и интуитивно.
- Код написан профессионалом. Комментарии, пространства имён, nonce, экранирование — я уверен в безопасности.
- Я научился работать с API нейросетей. Теперь я понимаю, как отправлять запросы, обрабатывать асинхронность, работать с Base64.
- DeepSeek стал моим наставником. Он объяснял каждую строчку, предлагал альтернативы, не критиковал, а поддерживал.
Я не проверил плагин на 100%, но визуально и логически он готов. Ошибка — лишь повод углубиться в код и понять его ещё лучше.
Что дальше? Интрига!
В следующей статье я расскажу, как мы с DeepSeek искали и исправляли эту ошибку. Мы уже нащупали нить — возможно, проблема в передаче массива настроек или в неправильном вызове метода publish(). Мы будем использовать xdebug, логи, тестовые данные. Это будет настоящее детективное расследование.
Я обещаю: в следующем посте мы разберём ошибку по косточкам, покажем код, который её устранил, и поделимся инсайтами. Если ты тоже боишься багов — эта история для тебя. Мы покажем, что даже сложная ошибка — это просто задача, которую можно решить, если подойти с умом.

Почему DeepSeek остаётся моим главным помощником
Пробовал другие нейросети — DeepSeek выигрывает:
- Понимает контекст. Он не просто выдаёт код, а учитывает всю архитектуру WordPress.
- Объясняет на русском — я могу уточнить любой момент.
- Терпеливый и дружелюбный. Он не говорит «ты тупой», а подсказывает, как сделать лучше.
- Скорость. За несколько часов мы сделали то, на что у новичка ушла бы неделя.
Призыв к действию
Друг, если ты тоже мечтаешь о своём проекте, но боишься сложностей — начни. Возьми DeepSeek, сформулируй задачу, и двигайся маленькими шагами. Ошибки неизбежны, но они — часть обучения. Не бойся их, а изучай.
Подписывайся на мой блог, чтобы не пропустить следующую статью о борьбе с багом. Вместе мы разберёмся!
Контакты

Я всегда открыт к общению. Если хочешь спросить о плагине, ошибке или просто поболтать об IT — пиши.
📧 Email: milyutinkv@gmail.com
🌐 Сайт: milyutin-codes.ru
💬 Группа ВК: vk.ru/milyutin_codes
Подписывайся, задавай вопросы, делись идеями. Мы вместе делаем этот путь.
До встречи в следующей статье!
Мы уже готовим материал о том, как отлаживали плагин, какие инструменты использовали и как в итоге победили ошибку. Это будет честный разбор с кодом и эмоциями.
А пока — если у тебя есть предположения, где может быть баг, пиши в комментарии! Мне интересно твоё мнение.
Константин Милютин
Автор блога «Милютин Код»
Продолжение следует…

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