Как избавиться от спама в блоге на Wordpress

28.07.2008, 19:03.
Категории: Спам, Статьи

Для тех, у кого блог работает на движке 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 или более ссылок», если вы этого еще не сделали.

Вот и все. Наверное, можно вместо всего этого и капчу поставить, но кому нравится каждый раз вводить циферки?

“Как избавиться от спама в блоге на Wordpress” — Комментариев: 9

  1. pepelsbey пишет:

    Дело в том, что это так называемые биороботы, которые зачастую спамят вручную а работу на дому этим людям раздают определённые заказчики. Поэтому попытки спрятать поле URL практически не имеют смысла. Причём изредка комментарии даже имеют отношение к теме публикации. Отсеивать такие комментарии можно только вручную, просмотрев сайт, на который ссылается комментатор, оценив его содержимое и уместность комментария.

  2. hooey.ru пишет:

    @pepelsbey:

    ОК, поле ввода спрятано, в тексте ссылку оставить нельзя — что им тогда делать? Все, оставить ссылку не получится.

  3. pepelsbey пишет:

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

    Даже начал собирать коллекцию маразмов от этих биороботов:

    — Дааа, скольно ж времени надо на такую статью? Не жалко вам? :)
    — А что Вы скажете, еси я скажу, что все Ваши посты, не более чем выдумка?
    — Читаю блог, и понимаю, что ничего не понимаю. Все так запутано.
    — в Москве жара такая, а у Вас еще как-то хватает сил писать…

  4. А.Г. Шестаков пишет:

    Править системные файлы WP есть зло.

    Лучше поправить тему чтобы до того, как галка будет нажата, поля “сайт”, “текст комментария” и сама кнопка были disabled.

  5. buriduri пишет:

    Суперское решение! Я не понимаю, что тут товарищи бунтуют. Конечно, править системные файлы зло, но код comment_author_link можно сделать в виде отдельного плагина, так и в виде строк в functions.php вашей темы.

    Hooey, вы не против, если я сделаю небольшой плагинчик? Все права первооткрывателя ваши :)

  6. 4g3n7 пишет:

    Я у себя в дневнике столкнулся с этой проблемой.
    Модерирую вручную комментарии. Убирал поле с сайтом — не помогает, спамеры все равно пишут сайт.

    Но у меня комментарии не так часто оставляют, поэтому модерирование вручную это выход. А как быть, когда комментариев много?

  7. новини пишет:

    Я сначала тоже вручную удаляла, потом это мне надоело.. обратилась к другу программеру, он что наколдовал и теперь все ок))

  8. Серега пишет:

    Бугага , попробовал ввести без кнопочки комент , ржал ) Вообще если капча безобидная , например елементарно ввести цифру , то она не напрягает , больше напрягают типо : введите все буквы красные и прочая хрень .. Есть хороший способ просто переименовать переменную для формы комента , и сделать свою уникальную , ведь именно по имени спам ищет жертву .
    И Кстати как сделать галочку такую ? Эт плагин чтоль ?

  9. hooey.ru пишет:

    @Серега: Нет, руками все. Несколько строчек кода.

Выскажитесь!

RSS комментариев.