WordPress禁止用户注册某些用户名

  • 文章介绍
  • 评价建议
  • WordPress禁止用户注册某些用户名

    不管在任何网站,用户注册时都有一个屏蔽非法关键词,就是禁止注册某些用户名,原因是因为防止用户使用一些特定的用户名,例如管理员、官方等用户名,还有就是那些攻击性的词语了。

    加网站添加了屏蔽非法关键词,让那些用户名不被注册,对网站的安全性也是一个提高。

    下面这段代码能够完美解决WordPress禁止用户注册某些用户名。

    function sozot_validate_username($valid, $username) {
    	$forbidden = array(
    		'directory', 
    		'domain', 
    		'download', 
    		'downloads', 
    		'edit', 
    		'editor', 
    		'email', 
    		'ecommerce', 
    		'forum', 
    		'forums', 
    		'favorite', 
    		'feedback', 
    		'follow', 
    		'files', 
    		'gadget', 
    		'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')

    .

    使用方法

    将$forbidden = array里的单词换成你想禁止的词即可,然后把代码添加到主题的functions.php文件即可。

    不过上面代码有可能和某些插件不兼容,这就要看自己如何取舍了。

    发表评论

    免责声明 芒果源码,一个精品商业网站源码分享平台 WWW.OKMG.CN 1. 本站所有资源来源于用户上传和网络,均不允许转载,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除! 3. 如发现会员转载本站资源文章,本站有权封禁会员账号! 4. 不得使用于非法商业用途,不得违反国家法律。否则后果自负! 5. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 6. 如有链接无法下载、失效或广告,请联系管理员处理! 7. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 8. 如遇到加密压缩包,默认解压密码为"www.okmg.cn",如遇到无法解压的请联系管理员! 9.本站客服:29139260
    开通VIP 享更多特权,建议使用 QQ 登录