Анонимная система комментариев (плагин) для WordPress — без паролей и регистрации
проекте
SDWSKi Comments — плагин для WordPress, в котором комментировать можно без пароля, без регистрации и без аккаунта в WordPress: достаточно ввести email и код из письма.
Большинство систем комментариев просят читателя придумать пароль, подтвердить почту, согласиться с пятью галочками или войти через соцсеть. В итоге человек, которому было что сказать, закрывает вкладку. Мы пошли от обратного: вход должен занимать полминуты, а о человеке сайт должен знать как можно меньше.
Плагин написан для собственного сайта SDWSKi и работает на нём каждый день. Он не тянет внешних сервисов, не загружает шрифты и аватары со сторонних серверов, не замедляет страницы и спокойно живёт рядом с кэширующими плагинами.
Как это выглядит для читателя
Читатель проходит вход за три действия, и больше ничего запоминать не нужно.
- Вводит email и ставит галочку согласия — одну, с ссылкой на политику конфиденциальности.
- Получает на почту шестизначный код (буквы и цифры, например
ABC123) и вводит его. - Пишет комментарий и нажимает «Отправить».
Пароля нет вообще: нечего забыть, восстанавливать и нечего утечь. После первого входа сайт помнит читателя 30 дней, и следующий комментарий пишется в один клик. Если письма нет несколько минут, форма подсказывает заглянуть в «Спам» и «Промоакции», а кнопка «Отправить снова» доступна через минуту. Если опечатался адресом — «← Изменить email».
Пока сессия стартует, страница не мигает: форма входа появляется только тому, кто ещё не вошёл.
Анонимность и приватность
Для других читателей комментатор остаётся анонимным: публично видны только имя и текст, email не показывается нигде. Так и написано прямо под формой. Полной анонимности перед владельцем сайта нет, и мы этого не обещаем: email нужен, чтобы прислать код и отделить живых людей от спама. Зато всё остальное сделано так, чтобы собирать о человеке минимум.
- Никаких сторонних запросов. Нет Google Fonts, нет Gravatar, нет трекеров. Шрифт берётся из темы сайта, аватар рисуется на месте — буква на нейтральной подложке. Хэш адреса не уходит ни в HTML, ни в ответы сервера.
- Не хранятся IP и User-Agent.
- Одна cookie.
dc_sessionставится только после ввода кода, это техническая cookie входа (HttpOnly,SameSite=Lax,Secureна HTTPS). - Согласие записывается на сервере: когда и на какой версии условий человек согласился. Обход через браузер не сработает.
- Всё своё — в одном месте. В личном кабинете человек может сменить имя, скачать все свои данные файлом JSON или нажать «Удалить аккаунт и данные». Тогда стираются профиль, комментарии с ответами, лайки, сессии и коды.
- Удаление своего комментария — окончательное. Не «скрыто», а стёрто из базы.
- Отписка от писем — в один клик, причём в списке отписавшихся хранится хэш, а не сам адрес.
Одна деталь, которую стоит знать: при первом входе отображаемое имя берётся из части адреса до «@». Если почта вида ivan.petrov@…, лучше сразу зайти в «Мои данные» и заменить его на ник — так под текстом останется то, что вы выбрали сами.
Удобство и комфорт
Всё, что нужно для нормального разговора, есть, и ничего лишнего. Дизайн минималистичный: тонкие линии вместо карточек, чёрно-белые кнопки, акцент только на фокусе и лайке.
- Ответы. Один уровень вложенности, как у большинства медиа: ветка не уходит в лестницу и остаётся читаемой на телефоне.
- Лайки. Гость видит счётчик, вошедший может поставить или снять лайк.
- Уведомления об ответах. Когда кто-то отвечает на ваш комментарий, приходит письмо со ссылкой на обсуждение. Отписаться можно одним кликом.
- Загрузка по 20 штук. Длинная дискуссия не тянет всё сразу: дальше — кнопка «Загрузить ещё».
- Светлая и тёмная тема. Цвета и шрифт наследуются от темы сайта и переключаются вместе с ней. Чтобы подгонать плагин под другой дизайн, достаточно поменять пару переменных в
base.css. - Доступность. Подписи для скринридеров, aria-атрибуты, объявления об ошибках и статусах прямо в форме, без всплывающих окон.
- Многоязычность. Если на сайте стоит плагин перевода SDWSKI.com Translate, комментарии разделяются по языкам: на русской версии видны русские, на литовской — литовские. Ссылки в письмах ведут на нужную языковую версию записи. Без этого плагина всё работает как обычно.
Есть и дополнительные шорткоды: отдельная форма входа, личный кабинет, последние комментарии по сайту, комментарии текущего читателя.
Как устроен плагин
Страница остаётся статичной, а комментарии живут отдельно: поэтому плагин не мешает кэшу.
Кэш отдаёт страницу как обычно, затем скрипт в браузере запрашивает у admin-ajax.php сессию и ленту. Этот адрес стандартный для WordPress и всегда обходит кэш, так что LiteSpeed Cache и WP Rocket трогать не нужно.
- Вход. Код из 6 символов живёт 15 минут, на ввод даётся 5 попыток, повторно его можно запросить не чаще раза в минуту. Сессия — случайный токен: в
HttpOnly-cookie и в базе, на 30 дней. Просроченные сессии и коды чистит ежедневное задание WP-Cron. - Защита. Все SQL-запросы идут через
$wpdb->prepare(), из текста комментария вырезается весь HTML, на каждый POST-запрос проверяется nonce. - Кэш. Списки и счётчики кэшируются с учётом языка и сбрасываются при каждом новом комментарии. LiteSpeed Cache об этом тоже узнаёт.
- Своя база. Читатели и комментарии лежат в пяти собственных таблицах, а не в
wp_commentsи не среди пользователей WordPress. Поэтому читатели никак не пересекаются с учётными записями сайта.
Кому подойдёт
Плагин полезен там, где комментарии — часть разговора с читателем, а не полигон для спама и споров.
- Авторам блогов и журналов на WordPress, которым надоели полей «Имя, Email, Сайт» и безликих картинок-аватаров.
- Проектам в Европе, где важны GDPR и чистая база: согласие, экспорт и удаление данных реализованы из коробки, также через инструменты экспорта и удаления персональных данных WordPress.
- Многоязычным сайтам, где каждая языковая версия должна жить своей жизнью.
- Кто ставит агрессивное кэширование (LiteSpeed Cache, WP Rocket): страницы остаются статичными, комментарии подгружаются отдельно.
- Тем, кто хочет независимости: ни сторонних сервисов, ни подписок, всё хранится в вашей базе.
Владельцу сайта тоже есть что получить: модерация в админке (новые комментарии можно сначала проверять), список пользователей с блокировкой, пометки (badge) у авторов, фильтр по языку и корзину, где удалённые модератором комментарии лежат 30 дней и стираются сами. Отправка кодов — через ваш обычный почтовый механизм WordPress, поэтому стоит настроить SMTP: код должен доходить быстро.
Установка и настройка
Установка занимает пару минут: положить папку sdwski-comments в /wp-content/plugins/, активировать её в админке — таблицы в базе создадутся сами. При обновлении файлы просто заменяются, база подтянется до нужной версии.
По умолчанию секция комментариев появляется под каждой записью, а штатные комментарии WordPress отключаются. В «Настройки → SDWSKi Comments» можно включить премодерацию, выбрать, куда вести ссылки на политику конфиденциальности, соглашение, личный кабинет и страницу безопасности, а если автоматическое размещение не нужно — выключить его и вставлять шорткод туда, где хочется. Текст для политики конфиденциальности плагин подставляет в руководство WordPress сам.
Хотите такую систему комментариев себе на сайт? Напишите мне.
А еще можно посмотреть, как SDWSKi Comments работает в моем блоге или на мужской журнале Doberman Media.