在注册时过滤用户名字段中的亵渎和不想要的词 时间:2013-11-26 作者:Christine Cooper 如何在用户名字段中添加过滤器,以阻止新用户使用不需要的词进行注册,例如administrator 还是一般的亵渎?理想情况下,如果我可以添加一个大的单词列表,这些单词会被阻止,并可以添加星号(*)作为通配符,如genitals*. 1 个回复 最合适的回答,由SO网友:fuxia 整理而成 根据安装情况,您可以使用两种截然不同的挂钩:wpmu_validate_user_signup 对于多站点和registration_errors 对于单个站点以下未经测试的代码显示了如何使用它们。可以在中调整阵列user_name_is_forbidden() 满足您的需求。对匹配项使用正则表达式。// multi-site add_filter( \'wpmu_validate_user_signup\', function( $result ) { // there is already an error if ( $result[\'errors\']->get_error_message(\'user_name\') ) return $result; if ( user_name_is_forbidden( $result[\'user_name\'] ) ) $result[\'errors\']->add(\'user_name\', __( \'That username is not allowed.\' ) ); return $result; }); //single-site add_filter( \'registration_errors\', function( $errors, $name ) { if ( user_name_is_forbidden( $name ) ) $errors->add(\'user_name\', __( \'That username is not allowed.\' ) ); return $errors; }, 10, 2); function user_name_is_forbidden( $name ) { // If you need the character \'~\', write it as \'\\~\'. $forbidden = array( \'admin.*\', \'genitals.*\', \'system.*\' ); return (bool) preg_match( \'~\' . join( \'|\', $forbidden ) . \'~i\', $name ); } 结束 文章导航