您可以使用@ 和. 在用户名中,所以没有问题。现在您可以创建自己的注册表并使用register_new_user(). 你甚至可以操纵wp_registration_url() 使用过滤器register_url, 因此,注册链接将指向您的新注册页面。
如果您想将其与wp login提供的标准界面一起使用。php,您需要一些解决方法。比方说,您只想显示用于注册的电子邮件输入字段,您可以简单地(虽然有点黑客)用如下方式隐藏用户名字段:
add_action( \'register_form\', function() {
?><style>#registerform > p:first-child{display:none;}</style><?php
} );
旁注:还可以将样式表排队到wp登录中。php使用
login_enqueue_scripts 行动
但如果这样做,您将发送一个空用户名,因此您必须挂接两个过滤器:sanitize_user 和validate_username.
add_filter( \'sanitize_user\', function( $sanitized_user, $raw_user, $strict ) {
if ( $raw_user != \'\' ) {
return $sanitized_user;
}
if ( ! empty ( $_REQUEST[\'action\'] ) && $_REQUEST[\'action\'] === \'register\' && is_email( $_POST[\'user_email\'] ) ) {
return $_POST[\'user_email\'];
}
return $sanitized_user;
}, 10, 3 );
add_filter( \'validate_username\', function( $valid, $username ) {
if ( $valid ) {
return $valid;
}
if ( ! empty ( $_REQUEST[\'action\'] ) && $_REQUEST[\'action\'] === \'register\' && is_email( $_POST[\'user_email\'] ) ) {
return true;
}
return is_email( $username );
}, 10, 2 );
在中
sanitize_user 我们用电子邮件地址替换空字符串。稍后将使用验证用户名
validate_username, 但是,将再次使用空用户名,因此我们也需要捕捉到这一点。
但我认为创建一个自己的表单会更受欢迎,而且不太粗糙。