星期五 , 2020-10-23
首页 > WordPress教程 > WordPress禁止注册特定用户名和包含空格

WordPress禁止注册特定用户名和包含空格

自己的网站当然不想别人来注册个admin、editor之类的管理员称谓用户名了。如果允许注册此类用户名将会误导用户认为是网站管理员。而且,注册此类用户名的用户多半是含有不良企图的人,难免会造成一些不良后果。所以,必须得禁止注册此类有误导嫌疑的用户名。

以下是禁止注册特定用户名的具体方法:

/*
禁止注册特定用户名
代码来源: www.wpzhinan.com
*/
function wpzhinan_validate_username($valid, $username) {
	$forbidden = array('admin', 'edit', 'editor', 'email', 'administrator', 'forum', 'feedback', 'guest', 'group', 'groups', 'homepage', 'httpd', 'https', 'yourname', 'yourusername', 'yoursite', 'yourdomain');
	$pages = get_pages();
	foreach ($pages as $page) {
		$forbidden[] = $page->post_name;
	}

	if(!$valid || is_user_logged_in() && current_user_can('create_users') ) return $valid;
	$username = strtolower($username);
	if ($valid && strpos( $username, ' ' ) !== false) $valid=false;
	if ($valid && in_array( $username, $forbidden )) $valid=false;
	if ($valid && strlen($username) < 5) $valid=false;
	return $valid;
}

add_filter('validate_username', 'wpzhinan_validate_username', 10, 2);

function wpzhinan_registration_errors($errors) {

	if ( isset( $errors->errors['invalid_username'] ) )
		$errors->errors['invalid_username'][0] = __( '抱歉,该用户名不允许注册!', 'wpzhinan' );
	return $errors;
}

add_filter('registration_errors', 'wpzhinan_registration_errors');

代码说明:请将以上代码插入主题fuction.php即可。$forbidden后面的数组可自行添加、修改需要禁止注册的用户名。

顺便介绍一下禁止包含空格的用户名注册的方法:

/*
禁止包含空格的用户名注册
代码来源: www.wpzhinan.com
*/
add_filter('validate_username' , 'custom_validate_username', 10, 2);
function custom_validate_username($valid, $username ) {
		if (preg_match("/\\s/", $username)) {
   			// there are spaces
			return $valid=false;
		}

	return $valid;
}

代码说明:以上代码也需插入熬主题fuction.php。这段代码将禁止用户注册含空格的用户名。

本文地址:http://www.wpzhinan.com/jiaocheng/1477.html
版权申明:除部分代码外,本站内容均为原创,转载请注明来源,违者必究侵权责任!

相关推荐

WP_Image_Editor_Imagick 指令注入漏洞修复方法

Imagick组件爆出了超级漏洞,危害等级极高,直接导致大量使用Imagick组件的网站均 ...