怎么让Wordpress 注册支持中文用户名
wordpress注册是不是支持中文名字的如果我们要想让它支持中文名字我需要对内核程序进行一些简单的处理,下面一起来看看,我们找到代码如下:
sanitize_user在wp_includes/formatting.php中定义,其函数体如下: function sanitize_user( $username , $strict = false ) { $raw_username = $username ; $username = wp_strip_all_tags( $username ); $username = remove_accents( $username ); // Kill octets $username = preg_replace( '|%([a-fA-F0-9][a-fA-F0 -9])| ', ' ', $username ); $username = preg_replace( '/&.+?;/' , '' , $usernam e ); // Kill entities // If strict, reduce to ASCII for max portability. if ( $strict ) $username = preg_replace( '|[^a-z0-9 _.-@]|i' , '' , $username ); // Consolidate contiguous whitespace $username = preg_replace( '|s+|' , ' ' , $username ); return apply_filters( 'sanitize_user' , $username , $r aw_username, $strict ); }这样,我们简单地在第746行前面加上//注释掉这个语句,就可以支持中文用户名了,当然,根据版本不同,你的不一定也是第746行.
把 $strict 强制指定为 false,即在 sanitize_user 这行函数的下一行添加如下代码:
$strict = false;或者注释掉
//$username = preg_replace( '|[^a-z0-9 _.-@]|i', '', $username );
这样就一切OK了,但我们如果要对中文名字进行验证还需要如下操作,代码如下:
//增加中文注册 function china_login( $username , $raw_username , $strict ) { if ( ! $strict ) return $username ; return sanitize_user( stripslashes ( $raw_username ), false); } HdhCmsTestphpfensi测试数据 add_filter( 'sanitize_user' , 'china_login' , 10, 3);不过,需要注意的是,在下次升级的时候,还需要做同样的处理.
查看更多关于怎么让Wordpress 注册支持中文用户名 - WordPress的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did8823