Продолжая тему защиты блога от спама, я, как и обещал, останавливаюсь на втором пункте, а именно, изменение имени полей комментирования как способ эффективной защиты от спама без использования плагинов.

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

В чем преимущества этого способа?

  1. Не вынуждает честных комментаторов производить какие-либо дополнительные действия.
  2. Не нужно устанавливать какие-либо дополнительные плагины.
  3. Как следствие пункта 2, не создается дополнительная нагрузка на сервер.
  4. Подходит для любых версий WordPress.

Конечно, у каждого способа есть свои минусы и этот не исключение:

  1. От ручного спама это вас не спасет. В принципе, от ручного спама защиты и нет. Поэтому советую не отключать Akismet.
  2. При обновлении ядра блога придется снова редактивать wp-comments-post.php

Но всё же считаю, что у этого метода плюсы намного перевешивают минусы. ;) Поэтому перейдем к реализации этого метода. Итак, начнем.

1. Для начала находим файл из вашей темы comments.php, который находится в папке /wp-content/themes/ВАША_ТЕМА/ и открываем его через текстовый редактор.

2. Для простоты достаточно изменить одно поле: email или author. Но так как мы добиваемся максимальной защиты от спама, то будем изменять все возможные поля. Находим следующие поля:

<input type="text" name="author" value="<?php echo $comment_author; ?>" tabindex="1" />
<input type="text" name="email" value="<?php echo $comment_author_email; ?>" tabindex="2" />
<input type="text" name="url" value="<?php echo $comment_author_url; ?>" tabindex="3" />
<textarea name="comment" tabindex="4"></textarea>

Они у вас не обязательно будут прям в точь-точь такими же, но атрибуты name ОБЯЗАТЕЛЬНО такие! Далее заменяем в них значения параметра name на любые другие, например, на x1x, x2x, x3x, x4x соответственно. Получим следующее:

<input type="text" name="x1x" value="<?php echo $comment_author; ?>" tabindex="1" />
<input type="text" name="x2x" value="<?php echo $comment_author_email; ?>" tabindex="2" />
<input type="text" name="x3x" value="<?php echo $comment_author_url; ?>" tabindex="3" />
<textarea name="x4x" tabindex="4"></textarea>

Затем сохраняем этот файл и закрываем его.

3. Теперь находим файл wp-comments-post.php, который находится в корневой папке блога и также открываем его с помощью текстового редактора.

4. Находим следующие строки:

$comment_author       = ( isset($_POST['author']) )  ? trim(strip_tags($_POST['author'])) : null;
$comment_author_email = ( isset($_POST['email']) )   ? trim($_POST['email']) : null;
$comment_author_url   = ( isset($_POST['url']) )     ? trim($_POST['url']) : null;
$comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;

И заменяем во всех строках после равно значения в квадратных скобках на новые параметры name, то есть на x1x, x2x, x3x, x4x соответственно. То есть у вас получится:

$comment_author       = ( isset($_POST['x1x'])  )     ? trim(strip_tags($_POST['x1x'])) :  null;
$comment_author_email = ( isset($_POST['x2x'])  )     ? trim($_POST['x2x']) : null;
$comment_author_url   = ( isset($_POST['x3x'])  )     ? trim($_POST['x3x']) : null;
$comment_content      = ( isset($_POST['x4x'])  )     ? trim($_POST['x4x']) : null;

Сохраняем файл и закрываем его.

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

Я решил воспользоваться именно этим методом защиты от спама и вчера проделал все эти действия на своём блоге. Можете убедиться, что комментарии работают на ура. ;)

Если у вас остались вопросы, задавайте их. Постараюсь на них ответить.

И ещё немного информации

Предлагаю дополнительно изучить эффективное продвижение сайта, рассматриваемое на практике. А также компания SEO City предлагает продвижение статьями на качественных отборных площадках.