Как запретить оставлять комментарии с активной ссылкой в WordPress

Image

Приветствую!

В WordPress имеется достаточно удобная система комментирования размещённых материалов. Оно и немудрено, ведь движок WordPress изначально создавался с прицелом на блог-платформу. Однако в комментариях без устали пытаются разместить всякого рода мусор специальные рекламные роботы, причём в подавляющем большинстве сообщение сопровождается активной ссылкой или множеством таковых. И это при том, что в самой форме написания комментариев отсутствуют инструменты, которые позволяют разместить активную (кликабельную) ссылку.

Это происходит потому, что комментарий отправляется напрямую роботом, минуя саму форму.

Несомненно, есть отличное решение, которое позволит эффективно фильтровать спам сообщения. Речь идёт о популярном и эффективном плагине Akismet Anti-Spam, о настройке и использовании которого вы можете прочесть в статье «Борьба со спам комментариями в WordPress – обзор решений». Данный плагин по множеству параметров отфильтровывает потенциальный спам, помещая его в соответствующую категорию.

Всё бы хорошо, но в эту категорию могут попасть и вполне безобидные комментарии. По этой причине приходится время от времени просматривать раздел со СПАМ комментариями, которых может накапливаться весьма много.

Если вы поступаете также, то могли заметить, что, как и говорилось выше, подавляющее большинство спам комментариев содержат активную ссылку(и), которую без соответствующих знаний HTML не может оставлять обычный комментатор.

Ограничиваем возможность отправки комментариев в WordPress с активной ссылкой

Тогда и родилось решение, которое я хочу вам продемонстрировать. Оно заключается в ограничении возможности оставлять кликабельную (активную) ссылку в отправляемом комментарии. При попытке отправить комментарий с такой ссылкой или ссылками, будет выводиться предупреждение, а сам комментарий не допущен к размещению.

Сообщение в WordPress, появляющееся при попытке отправить комментарий с кликабельной ссылкой

Естественно, обычные ссылки отправлять комментаторы в сообщении смогут без всяких ограничений, речь идёт именно о кликабельной ссылке, которая обрамлена специальным HTML кодом. Пример такой ссылки:

<a href="https://example.ru/">Текст ссылки</a>

Давайте рассмотрим код, который реализует данный функционал:

add_filter('preprocess_comment', 'href_in_comment');
function href_in_comment($commentdata) {
	if (!is_admin() and preg_match("/href=/", $commentdata['comment_content'])) {
		wp_die('HTML тег ссылки (активная ссылка) в комментариях запрещён. Вернитесь и отредактируйте сообщение.<br /><br /><a href="javascript:history.go(-1);">вернуться назад и отредактировать комментарий</a>');
	} 
	return $commentdata;
}

Данный код необходимо вписать в файл functions.php, что в обязательном порядке имеется в папке с темой (дизайном), которая используется на вашем сайте.

Сохранив вписанный код и попробовав отправить комментарий с активной ссылкой, вы увидите соответствующее сообщение.

Представленное решение позволит покончить с остаточным явлением спама и при этом никак не затронет обычных комментаторов. Теперь вы будете тратить куда меньше времени на анализ комментариев, что находятся в категории спам-а, и, соответственно, снижается риск пропустить ошибочно попавшее туда сообщение от реального посетителя.

Пожертвование сайту WPuse.ru (cбор пожертвований осуществляется через сервис «ЮMoney»)