Если в комментариях на сайте регулярно появляются рекламные ссылки, проблема обычно не в самих комментариях, а в том, что спам-боты получают слишком дешёвый способ оставить кликабельный URL. Удалять комментарии вручную можно, но это не решает источник шума. На практике удобнее отключить автоссылки в тексте комментариев и оставить ссылки только для админов или вообще убрать их из вывода.
Ниже — рабочий сценарий для WordPress: сначала проверяем, как именно ссылки появляются, потом выбираем способ отключения, затем тестируем результат и закрываем типичные ошибки.
Что именно нужно отключить: кликабельные URL или поле сайта
В WordPress есть два разных источника ссылок в комментариях:
- URL в тексте комментария — например, когда бот пишет
https://example.com, а WordPress превращает его в кликабельную ссылку. - Поле “Сайт” у комментатора — ссылка, которая может отображаться рядом с именем автора комментария в теме оформления.
Если убрать только одно из них, спам может продолжить работать через другое. Поэтому сначала определите, что именно мешает: автоссылки в тексте, ссылка в имени автора или оба варианта сразу.
Диагностика проблемы перед изменениями
Откройте несколько свежих комментариев в админке и посмотрите, как они отображаются на фронтенде. Если в тексте комментария обычный URL становится ссылкой, значит срабатывает стандартная функция WordPress, которая преобразует адреса в HTML-ссылки при выводе.
Если же ссылка видна только рядом с именем автора, проверьте шаблон комментариев в теме. Часто тема выводит comment_author_url() или аналогичный URL автора без дополнительной проверки.
Полезно также проверить, не делает ли это плагин антиспама, редактор комментариев или тема. Иногда проблема выглядит как “WordPress сам вставляет ссылки”, но на деле это кастомный фильтр в теме.
Быстрая проверка в браузере
- Оставьте тестовый комментарий с обычным URL.
- Откройте страницу записи в режиме инкогнито.
- Проверьте, стал ли URL кликабельным.
- Посмотрите HTML через DevTools: если в комментарии есть тег
<a>, значит ссылка формируется на этапе вывода.
Как отключить автоссылки в комментариях кодом
Самый надёжный способ — убрать фильтр, который превращает URL в ссылку. Для этого можно использовать comment_text и удалить стандартный фильтр make_clickable только для комментариев.
Добавьте код в functions.php дочерней темы или в небольшой mu-plugin. Второй вариант безопаснее для обновлений темы.
<?php
add_action( 'init', function () {
// Убираем автоссылки только из текста комментариев.
remove_filter( 'comment_text', 'make_clickable', 9 );
} );Этот вариант не трогает ссылки в записях и страницах. Он влияет только на вывод текста комментариев.
Если нужно сделать решение более явным и не зависеть от приоритетов фильтров, можно отфильтровать текст комментария вручную и экранировать URL как обычный текст. Но в большинстве случаев достаточно убрать make_clickable.
Если нужно убрать и ссылку сайта у автора
Когда тема выводит URL автора комментария, это уже отдельная задача. В шаблоне комментариев нужно не печатать адрес сайта, если он есть. Пример безопасного вывода:
<?php
$author = get_comment_author();
$url = get_comment_author_url();
if ( $url ) {
printf(
'<a href="%s" rel="nofollow ugc" target="_blank">%s</a>',
esc_url( $url ),
esc_html( $author )
);
} else {
echo esc_html( $author );
}Если ваша задача — именно убрать ссылку, а не сделать её безопаснее, просто выводите esc_html( $author ) без <a>.
Когда лучше использовать плагин, а когда код
Если сайт ведётся без разработчика, проще взять плагин с антиспам-фильтрацией и настройками комментариев. Но если задача точечная — отключить именно автоссылки, не меняя остальную логику, код обычно чище и предсказуемее.
| Подход | Что даёт | Минус |
|---|---|---|
| Код в теме или mu-plugin | Точное отключение автоссылок | Нужно не забыть при обновлении темы |
| Плагин антиспама | Дополнительная фильтрация спама | Не всегда убирает именно кликабельные URL |
| Правка шаблона комментариев | Полный контроль над выводом | Можно сломать верстку при обновлении темы |
Если на сайте уже стоит комплексная чистка и SEO-оптимизация, иногда удобнее закрыть несколько проблем сразу через один инструмент. Например, Clearfy Pro у WPShop полезен именно как набор точечных настроек для мусорных элементов сайта, но для отключения ссылок в комментариях всё равно важно понимать, что именно меняется в шаблоне и фильтрах. Ссылка: Clearfy Pro.
Проверка результата после внедрения
После внесения изменений проверьте не только внешний вид, но и HTML-структуру. Это важно, потому что иногда ссылка визуально исчезает, но остаётся в разметке и продолжает быть доступной для парсеров.
Что проверить вручную
- Оставить тестовый комментарий с URL в тексте.
- Убедиться, что URL отображается как обычный текст.
- Проверить, что ссылка автора комментария не выводится, если вы её убирали.
- Посмотреть исходный код страницы и убедиться, что в комментарии нет тега
<a>вокруг URL. - Проверить мобильную версию: иногда тема использует отдельный шаблон комментариев.
Если у вас включён кэш, очистите его после изменений. Иначе вы можете смотреть старую версию страницы и ошибочно думать, что код не сработал.
Частые ошибки и как их исправить
Фильтр сняли не там
Если remove_filter() добавлен слишком поздно или в не тот хук, WordPress уже успевает преобразовать URL. В таком случае перенесите код в init или проверьте приоритет фильтра, который используется в вашей установке.
Правили родительскую тему
После обновления изменения исчезают. Для таких правок используйте дочернюю тему или mu-plugin. Это особенно важно, если вы меняете шаблон комментариев вручную.
Отключили ссылки, но спам остался
Это нормальная ситуация: ботам не обязательно нужна кликабельность, чтобы засорять комментарии. Тогда дополнительно включайте модерацию, ограничение ссылок в комментарии и антиспам-проверку. Отключение автоссылок — это только один слой защиты.
Сломали вывод имени автора
Иногда разработчики по ошибке убирают не только URL, но и сам HTML-вывод автора. Если имя перестало отображаться как ссылка, но должно было, проверьте шаблон комментариев и разделите вывод имени и URL на разные условия.
Практические советы по безопасности и производительности
Если комментарии на сайте активно атакуют, не ограничивайтесь косметической правкой. С точки зрения безопасности лучше сочетать несколько мер:
- оставить модерацию для первых комментариев;
- ограничить количество ссылок в одном комментарии;
- отключить автоссылки в тексте;
- проверить, не индексируются ли страницы с мусорными комментариями;
- регулярно чистить спам из базы, чтобы не раздувать таблицы.
Для производительности это тоже полезно: меньше мусора в комментариях — меньше нагрузки на модерацию, поиск и вывод на странице записи.
Готовый сценарий для быстрого внедрения
Если нужен минимальный рабочий вариант, действуйте так:
- Проверьте, где именно появляется ссылка: в тексте комментария или в поле сайта автора.
- Добавьте отключение
make_clickableдляcomment_text. - При необходимости уберите вывод URL автора в шаблоне комментариев.
- Очистите кэш.
- Оставьте тестовый комментарий с URL и проверьте HTML страницы.
Такой подход даёт точечный контроль без лишних изменений в ядре WordPress и без риска сломать обычные ссылки в контенте записей.