首页» 教程» Wordpress教程» WordPress禁止注册特殊用户名-用户交互(五十九)

WordPress禁止注册特殊用户名-用户交互(五十九)

Hello,嗨,大家好,我是哈喽猿。

这里是哈喽猿网

今天推送的是wordpress教程的文章,感谢您宝贵的时间阅读

以前建议使用RestrictUsername插件限制用户名空格的使用,禁止某些用户名的注册,禁止用户名包含某些字段,或强制用户名包含某些字段,等等。

WordPress禁止注册特殊用户名

今天,添加一种更简单的方法,将以下代码直接添加到主题的Functions.php中:

/**
 * WordPress 禁止用户注册某些用户名
 * https://www.wpdaxue.com/wordPress-username-restrictions.html
 */
function sozot_validate_username($valid, $username) {
	$forbidden = array('directory', 'domain', 'download', 'downloads', 'edit', 'editor', 'email', 'ecommerce', 'forum', 'forums', 'favorite', 'feedback', 'follow', 'files', 'gadget', 'gadgets', 'games', 'guest', 'group', 'groups', 'homepage', 'hosting', 'hostname', 'httpd', 'https', 'information', 'image', 'images', 'index', 'invite', 'intranet', 'indice', 'iphone', 'javascript', 'knowledgebase', 'lists','websites', 'webmaster', 'workshop', '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', 'sozot_validate_username', 10, 2);
 
function sozot_registration_errors($errors) {
	if ( isset( $errors->errors['invalid_username'] ) )
		$errors->errors['invalid_username'][0] = __( '错误:该用户名不允许注册!', 'sozot' );
	return $errors;
}
add_filter('registration_errors', 'sozot_registration_errors');

您所要做的就是禁止注册的用户名添加到第 6 行的数组即可。

 

测试后,本文中的代码和RestrictUsername插件可能不会在某些注册插件或自定义注册表格上生效,例如,本网站目前使用的注册表格不受支持,非常令人沮丧!

发表评论

0 评论

提供最优质的资源集合

站长留言