Ну ви ж знаєте, я фігню не порекомендую. Сам цим способом користуюсь майже півроку і спамерів з того часу не бачив в себе.
Які ви бачили методи боротьби зі спамом? з мого досвіду:
- плагіни капч (captcha) — фу.
- Акісмет — не справляється
- Parasite Eliminator — «хорошо, но не очень». Він стоїть в мене на одному блозі + Akismet і все рівно спам проскакує (інколи на модерації затримується, а інколи й пропускає).
- інші антиспам-плагіни — fail
- кумедні рішення — постав галочку «я не робот» чи «нажми на прямокутник», навіть пробувати не хочу, бо знаю як це обходиться
- відповіді на запитання — ага, один раз наткнувся на питання: «What color is orange?» я спробував і «оранжевий» і «апельсиновий» і «помаранчевий» і «orange» — ніфіга, не пускала шайнтан-машина
Я от обхожу стороною такі блоги, статтю ще можу почитати, але свій коментар лишати не збираюся.
А тепер прийшла пора розказати, чому в мене немає спамерів і для відвідувачів створенні всі умови для зручного коментування.
В мене форма коментування з «подвійним дном» — насправді в мене дві форми — в одну пишуть роботи-спамери, а друга для моїх шанованих відвідувачів.
Для цього в файлі comments.php
вашої теми вордпресу знайдіть наступний рядок:
<textarea name="comment" id="comment" cols="61" rows="13" class="textarea"></textarea>
цей рядок ми замінимо на такі два рядки:
<div class="smo"><textarea name="comment" id="comment" cols="61" rows="13" class="textarea"></textarea></div>
<textarea name="real-comment" id="real-comment" cols="61" rows="13" class="textarea"></textarea>
де ви бачите, що попередню форму для коментування (textarea) ми засунемо в окремий блок, який згодом приховаємо, і створюєм ще один блок коментування для людей, в якому ім’я блоку відрізняється від стандартного імені, що присвоює вордпрес. Тут в прикладі є “real-comment“, але ви можете його змінити на щось своє, наприклад на “text-comment“. Так само як і можете змінити class=”smo” на щось інше, наприклад class=”comtext”
Тепер відкривайте style.css для вашої теми і пропишіть там цей рядок:
.smo {position: absolute; left: -1000px;}
Що це значить? Це значить, що стандартну форму коментування ми приховали, таким чином, що зсунули її на -1000 пікселів на екрані, але спамбот не може цього знати, бо він не може аналізувати вміст файлу стилів і тому буде пробувати написати коментар в цю форму.
Тепер зробимо, аби люди могли спокійно залишати коментар. Для цього відкрийте файл wp-comments-post.php
, що знаходиться в корені вашого вордпрес-блогу та віднайдіть такі рядки:
$comment_author = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['url']);
$comment_content = trim($_POST['comment']);
які слід замінити на:
$spam_test_field = trim($_POST['comment']);
if(!empty($spam_test_field)) wp_die('Іще один спамер попався!');
$comment_author = trim(strip_tags($_POST['author']));
$comment_author_email = trim($_POST['email']);
$comment_author_url = trim($_POST['url']);
$comment_content = trim($_POST['real-comment']);
Це і все! Це звісно не вбереже вас від ручного спаму, але якщо брати до уваги що 99% спаму це спамботи, то цей спосіб можна спокійно називати панацеєю від спаму.
UPD: Андрій Поданенко вирішив поставити під сумнів цей метод і ми позмагались у винахідливості. Про що його стаття у відповідь: «І знову спам. Погляд відсутності 0% та 100%. Antitop v0.3.»
UPD2 (26.11.2010) Тепер вже не потрібно це все робити вручну, бо є вже готовий плагін Antispam Bee