mysurik.ru

Как я написал свой первый плагин для WordPress и что из этого вышло

Как я написал свой первый плагин для WordPress и что из этого вышло

Зачем писать плагин, если всё уже есть

Мне нужно было добавить на сайт кнопку «Поделиться в Telegram» с счётчиком. Стандартные плагины либо уродливые, либо тяжёлые, либо показывают рекламу своей премиум-версии. Я решил написать свой — маленький и аккуратный.

До этого я никогда не писал плагины для WordPress. Думал, это сложно — нужно знать хуки, API, архитектуру. На деле оказалось проще, чем я ожидал.

Структура плагина

Плагин — это просто PHP-файл с комментарием в начале. Я создал папку telegram-share в wp-content/plugins/, внутри файл telegram-share.php:

В начале файла — стандартный заголовок: название плагина, описание, версия, автор. Без этого WordPress не увидит плагин.

Дальше — функция, которая выводит кнопку под каждым постом. Использовал хук the_content. Просто добавил HTML с иконкой Telegram и ссылкой вида https://t.me/share/url?url=…

Счётчик я сделал через custom field: когда кто-то нажимает кнопку, JS отправляет запрос на admin-ajax.php, и число увеличивается. Без базы данных, без лишних плагинов.

Что пошло не так

Первая версия выводила кнопку даже на страницах админки. Я забыл проверить is_single(). Исправил.

Счётчик сбрасывался при обновлении поста. Потому что я хранил его в post_meta, а при сохранении поста WP перезаписывал мета-поля. Пришлось добавить проверку: если поле уже существует — не трогать.

Кэширование. WP Super Cache кешировал страницы, и счётчик не обновлялся. Пришлось добавить исключение для кнопки через JavaScript, чтобы она грузилась асинхронно.

Итог

Плагин работает, кнопка висит под каждой статьёй. Счётчик тикает. Кода — 40 строк PHP и 20 строк JavaScript.

Теперь я не боюсь писать плагины. Для простых задач — это быстрее, чем искать подходящий плагин в репозитории и бороться с его настройками.

Ваш комментарий

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