Dr.Slon Toolkit – модульный плагин для обслуживания клиентских сайтов

Dr.Slon Toolkit – мой модульный плагин WordPress. Написал его с нуля (clean-room) под задачи, которые постоянно встречаются на клиентских сайтах: скрытый вход, контроль REST API, IndexNow, sitemap, управление автообновлениями, транслитерация, отключение комментариев и базовая очистка.

Это не набор костылей и не «ещё один всё-в-одном». Архитектура модульная: каждый модуль отвечает только за свою зону, включается и выключается независимо, регистрирует только свои хуки. На сервере клиента Composer не нужен.

Текущая версия: 0.12.0
Требования: WordPress 6.6+, PHP 8.1+
Лицензия: GPL-2.0-or-later
Репозиторий: github.com/A-Krivoshein/dr-slon-toolkit

6 сентября 2026 вышел релиз 0.12.0: капча Яндекса нормально садится на форму входа, старые кириллические постоянные ссылки можно перевести в латиницу вместе с 301. ZIP: dr-slon-toolkit-0.12.0.zip.

Зачем этот плагин

На большинстве сайтов приходится ставить 5-8 разных плагинов ради базовых вещей: спрятать wp-login.php, ограничить REST, отправить IndexNow, сделать нормальный sitemap, отключить комментарии, транслитерировать URL и файлы, приглушить автообновления.

Каждый такой плагин тянет свой интерфейс, свои опции, иногда конфликты и лишний код. Dr.Slon Toolkit закрывает эти задачи одним лёгким модульным решением: единая страница настроек, без удалённого JavaScript в админке.

Модули (что есть в 0.12.x)

1. Скрытый вход (Hide Login)

  • Прямой доступ к wp-login.php отдаёт 404 (кроме сброса пароля и recovery).
  • Вход работает по своему slug, например /my-login/.
  • При смене slug rewrite-правила обновляются автоматически.
  • Аварийное отключение одной константой в wp-config.php.
  • Работает и на сайтах без красивых постоянных ссылок (есть fallback).
define('KRV_DSTK_DISABLE_HIDE_LOGIN', true);

2. REST API Control

  • Три режима: всем / только авторизованным / whitelist.
  • Встроенный неизменяемый allowlist системных маршрутов WordPress (редактор, медиа и т.д.).
  • Пользовательский whitelist маршрутов и namespace только расширяет список, не ломает базовый.
  • Отдельная capability для обхода ограничений.
  • Реализация через нативный rest_pre_dispatch.

3. IndexNow

  • Ручная и автоматическая отправка URL.
  • Неблокирующая очередь через WP-Cron с повторами и защитой от гонок.
  • Проверочный ключ отдаётся по адресу /<key>.txt без записи файла на диск.
  • Учитывает Search Engine Visibility, noindex и canonical от The SEO Framework: не отправляет то, что индексировать не нужно.

4. Sitemap

  • Индекс /sitemap.xml и отдельные карты по типам записей и таксономиям.
  • Пагинация, кеширование, корректный lastmod.
  • Исключает неопубликованные и защищённые паролем записи.
  • TSF-safe режим: если The SEO Framework уже отдаёт свой sitemap, модуль Dr.Slon Toolkit автоматически отключается и показывает уведомление. Без дублей.

5. Update Controls

  • Управление автообновлениями ядра: all / minor / off.
  • Отдельные переключатели для плагинов, тем и переводов.
  • Управление e-mail уведомлениями об обновлениях.
  • Всё через нативные фильтры WordPress, без хаков ядра.

6. Транслитерация

  • Русский профиль для URL записей, терминов и имён загружаемых файлов.
  • Новые slug транслитерируются сразу. Уже опубликованные кириллические URL можно перевести кнопкой на странице настроек, со 301.
  • Файлы в uploads плагин сам не переименовывает: только новые загрузки.

7. Отключение комментариев

  • Глобально закрывает комментарии и пинги.
  • Скрывает соответствующий UI в админке.
  • Блокирует POST и REST-запросы к комментариям.

8. Очистка (Cleanup)

  • Отключение emoji-скриптов.
  • Удаление wp-embed.
  • Отключение XML-RPC.
  • Безопасное удаление лишних тегов из <head>.

Архитектура

Плагин построен по принципу «один модуль – одна ответственность».

  • dr-slon-toolkit.php – точка входа, автозагрузка (vendor или встроенный PSR-4 loader).
  • src/Core – Plugin, Settings, Activator, Deactivator, RewriteManager, ModuleInterface.
  • src/Modules – все функциональные модули.
  • src/Admin – нативная страница настроек через Settings API.
  • src/Integrations – The SEO Framework и GitHub Release Updater.

Настройки хранятся в одной опции dstk_settings с вложенной структурой. Каждый модуль можно включать и выключать независимо.

Обновления

С версии 0.9.0 WordPress сам предлагает обновления из GitHub Releases. Берётся только готовый asset dr-slon-toolkit-x.y.z.zip. Перед установкой проверяются SHA-256, размер, версия и структура пакета. Source code с кнопки «Code → Download ZIP» не используется.

Переход с версий ≤ 0.8.2 на 0.9.0 нужно сделать один раз вручную. Дальше обновления идут из админки.

9. Yandex SmartCaptcha

  • Виджет на форме входа, включая скрытый slug. В 0.12.0 вписан в стандартный wp-login (шире форма, свой CSS).
  • Ключи из Yandex Cloud. На сервере проверяется smart-token.
  • Сброс пароля и XML-RPC не закрываются. Если API Яндекса недоступен, fail-open.

10. Login Attempts

  • После серии неверных паролей IP блокируется.
  • В опциях хранится хеш адреса, не сырой IP.
  • Кнопка сброса блокировок на странице настроек.

11. Redirect Manager

  • Точные редиректы 301/302: /staryj/ -> /novyj/.
  • Не перехватывает wp-admin, страницу входа и REST.

Установка

  1. Откройте страницу релизов.
  2. Скачайте файл dr-slon-toolkit-0.12.0.zip (именно asset, не Source code).
  3. В WordPress: Плагины → Добавить новый → Загрузить плагин.
  4. Активируйте и настройте в меню Dr.Slon Toolkit.

Composer на боевом сайте не требуется.

Совместимость

Плагин специально сделан совместимым с The SEO Framework. Модули Sitemap и IndexNow умеют уходить в safe-mode, чтобы не создавать дубли и не отправлять noindex-страницы.

Что в планах

  • Экспорт/импорт профилей настроек
  • Расширенные интеграционные тесты

Итог

Dr.Slon Toolkit – рабочий инструмент, который я ставлю на клиентские сайты. Без воды, без лишних зависимостей, с понятной модульной структурой и нормальными проверками безопасности.

Скачать актуальный релиз и посмотреть код – по ссылкам ниже.

Источники и ссылки


Статьи по проекту «Dr.Slon Toolkit – модульный плагин для обслуживания клиентских сайтов»

Комментарии загружаются…