Как стать автором
Обновить

Боремся с линкспамом в блогах на Wordpress

Время на прочтение 2 мин
Количество просмотров 529
Для тех, у кого блог работает на движке Wordpress, как и у меня.

Замечали ли вы, что часто приходят странноватые комментарии от незнакомых людей? Вполне невинные, казалось бы. Например, «автор молодец, классно написал», «Пост ваш очень интересный, а вы знаете, что сегодня Пуговкин умер?», или еще что-нибудь в таком духе.

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

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

В каталоге, куда установлен Wordpress, найдите файл wp-includes/comment-template.php. В нем есть функция get_comment_author_link(). В районе 111-й строки в файле будет следующий код:
    if ( empty( $url ) || 'http://' == $url )
      $return = $author;
    else
      $return = "<a href='$url' rel='external nofollow'>$author</a>";

Если вы не знакомы с программированием, этот код означает: «если автор комментария не указал верного адреса своего сайта, тогда просто выведем его имя, а если указал — тогда выведем имя в виде ссылки на его сайт».

Оставьте из этих четырех строчек только $return = $author;, а остальные три удалите. Сохраните файл и загрузите его на сервер.

Кроме того, если поле URL в форме отправки комментария у вас не используется для входа по OpenID, как у меня, вы можете его вообще удалить или скрыть.

Для этого найдите в каталоге wp-content/themes/имя_темы/ файл comments.php, либо просто в интерфейсе администрирования зайдите в раздел «Дизайн», нажмите «редактировать тему», и справа выберите comments.php.

Ближе к концу файла будет такой код:
<p><input type="text" name="url" id="url" value="<?php echo $comment_author_url; ?>" size="22" tabindex="3" />
<label for="url"><small>Website</small></label></p>

Либо удалите этот текст полностью, либо закомментируйте (не могу показать, как это сделать — движок Хабрахабра не позволяет). Еще хитрее — можно ничего не удалять, а просто заменить type=«text» на type=«hidden». Тогда это поле ввода не будет видно пользователю, зато когда вам будет приходить на электронную почту уведомление о новом комментарии, вы будете видеть, указал ли комментатор адрес своего сайта или нет. Если указал — 100% спамер, ведь обычный пользователь не можете это сделать, так как просто не видит поля ввода.

Ну и конечно же, в настройках блога (Интерфейс администрирования Wordpress → Настройки → Обсуждение) укажите «Задержать комментарий, если он содержит 1 или более ссылок», если вы этого еще не сделали.

Вот и все. Наверное, можно вместо всего этого и капчу поставить, но кому нравится каждый раз вводить циферки?
Теги:
Хабы:
+3
Комментарии 13
Комментарии Комментарии 13

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн