Wordpress: как отключить спам регистрации?

Информация, статьи, патчи, исходные коды и т.д.
Post Reply
sva
Администратор
Posts: 125
Joined: 01 May 2015, 19:56

Wordpress: как отключить спам регистрации?

Post by sva »

Лучший способ остановить спам регистрации на любой CMS - это изменить её шаблон.
Для Wordpress нужно изменить файл wp-login.php
Для большей защиты текст new_user_login нужно изменить на своё, например, zdwbp_user_login. :)
Закомментированный блок с кодом нужен, чтобы отслеживать, когда и какой юзер был спамером.

Найдите блок:

Code: Select all

	$user_login = '';
	$user_email = '';
	if ( $http_post ) {
		$user_login = $_POST['user_login'];
меняем на

Code: Select all

	$user_login = $_POST['user_login'];
	if(!empty($user_login)) {
		//$svafp = fopen("spam.log","a+");
		//$svadate = gmdate("Y-m-d H:i:s ");
		//fwrite($svafp, '['.$svadate.'] '.$user_login."\r\n");
		//fclose($svafp);
		wp_die('Success! Spamer go away!');
	}
	$user_login = $_POST['new_user_login'];
Затем ищем

Code: Select all

<form name="registerform" id="registerform" action="<?php echo esc_url( site_url('wp-login.php?action=register', 'login_post') ); ?>" method="post" novalidate="novalidate">
	<p>
		<label for="user_login"><?php _e('Username') ?><br />
		<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(wp_unslash($user_login)); ?>" size="20" /></label>
	</p>
и меняем на

Code: Select all

<form name="registerform" id="registerform" action="<?php echo esc_url( site_url('wp-login.php?action=register', 'login_post') ); ?>" method="post">
	<div style="display: none;"><p>
		<label for="user_login"><?php _e('Username') ?><br />
		<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" /></label>
	</p></div>
<p>
		<label for="new_user_login"><?php _e('Username') ?><br />
		<input type="text" name="new_user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" /></label>
	</p>
Post Reply