На одном из сайтов, который работает на движке WordPress, сильно участились регистрации ботов. Было решено покончить с таким произволом и начать «Битву против спам-ботов». Если вам интересно, как запретить регистрацию спам-ботов в WordPress, то читайте далее и узнаете секретные штуки.
В качестве основного пациента будет выступать файл wp-login.php, который находится в корне сайта. Открываем его в любом редакторе и находим строку
$user_login = $_POST['user_login'];
и заменяем её на следующие строчки
$user_login = $_POST['user_login'];
if(!empty($user_login)) wp_die('Ботам регистрация запрещена!');
$user_login = $_POST['please_nospam_user_login'];
Теперь в этом же файле ищем код
<p>
<label><?php _e('Username') ?><br />
<input type="text" name="user_login" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>
</p>
и меняем на следующее
<div style="display: none;">
<p>
<label><?php _e('Username') ?><br />
<input type="text" name="user_login" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>
</p></div>
<p><label><?php _e('Username') ?><br />
<input type="text" name="please_nospam_user_login" id="user_login" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>
</p>
Получается отличный способ защиты формы регистрации от ботов. Теперь они не в состоянии завершить процедуру регистрации в блоге. Если у вас что-либо не получилось, то задавайте свои вопросы в комментариях и постараюсь вам помочь разобраться.
Здравствуйте.
Заменил указанные места фрагментами, которые Вы указали. Попробовал зарегистрироваться у себя на сайте с постороннего IP. Не получилось. В ответ получил только сообщение о запрете регистрации ботов. Как поступить? Спасибо.
А у меня получилось. Спасибо!)