WordPress 登录注册页面增加密码输入

2个月前 (12-15) kgdin wordpress插件 1评论 未收录 314℃

WordPress 登录注册页面增加密码输入

今天折腾了一天,终于把这个问题搞定了,纯源码,并非插件来的。因为有的时候虚拟机不支持邮件发送,

所以想弄一个这个,这样可以避免很多问题,我们接下来开始讲解怎么操作。

操作过程

首先我们在本地安装好测试环境,安装好wordpress,然后我们打开软件notepad++,找到wp-login.php文件

我们直接拉到722行处,就可以看到我们要修改的代码了。

<p>
<label for="user_login"><?php _e('Username') ?><br />
<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(wp_unslash($user_login)); ?>" size="25" placeholder="输入英文用户名"/></label>
</p>

<p>
<label for="user_email"><?php _e('Email') ?><br />
<input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr( wp_unslash( $user_email ) ); ?>" size="25" placeholder="输入常用邮箱"/></label>
</p>

我们现在在这里添加密码框,代码如下

<p>
<label for="password"><?php _e( '密码', 'ugp-domain' );?><br/>
<input id="password" class="input" type="password" tabindex="30" size="25" value="" name="password" placeholder="输入8位密码" />
</label>
</p>
<p>
<label for="repeat_password"><?php _e( '确认密码', 'ugp-domain' );?><br/>
<input id="repeat_password" class="input" type="password" tabindex="40" size="25" value="" name="repeat_password"placeholder="再次输入密码"  />
</label>
</p>

我们这里的代码添加完了之后保存到wp-login.php里面,我们来看一下效果图

未修改前图片


修改后的登录页面


主题修改

我们这里已经修改完了,我们接下来修改主题文件里面的主要文件functions.php,我们还是用工具打开该文件夹

然后拉到最下面,放在 ?> 这个符号的前面即可.代码如下

//自定义注册页面
add_action( 'register_post', 'ts_check_extra_register_fields', 10, 3 );
function ts_check_extra_register_fields($login, $email, $errors) {
if ( $_POST['password'] !== $_POST['repeat_password'] ) {
$errors->add( 'passwords_not_matched', "<strong>提示</strong>: 两次输入的密码不一致,请重新输入。" );
}
if ( strlen( $_POST['password'] ) < 8 ) {
$errors->add( 'password_too_short', "<strong>提示</strong>: 密码最少要输入8位,请重新输入密码。" );
}
}
add_action( 'user_register', 'ts_register_extra_fields', 100 );
function ts_register_extra_fields( $user_id ){
$userdata = array();

$userdata['ID'] = $user_id;
if ( $_POST['password'] !== '' ) {
$userdata['user_pass'] = $_POST['password'];
}
$new_user_id = wp_update_user( $userdata );
}
add_filter( 'gettext', 'ts_edit_password_email_text' );
function ts_edit_password_email_text ( $text ) {
if ( $text == 'A password will be e-mailed to you.' ) {
$text = 'If you leave password fields empty one will be generated for you. Password must be at least eight characters long.';
}
return $text;
}

复制上面所有的代码到functions.php 文件夹里面,然后保存更新,本地测试,然后注册帐号测试一下,基本上就OK了。

注册效果图

这个是可以使用邮箱登录的,也可以使用用户名登录




 

好了,终于码玩了,其实这个教程有很多,看的我头昏昏的,花了一天的时间才给整理好了,之前遇到过很多问题,一直不停的问度娘,

后来把很多多余的都给清理了。然后留下一些有用的代码,希望对你们有所帮助。搞定收工。

博主

这货来去如风,什么鬼都没留下!!!

相关推荐

1 条评论

  1. avatar
    1#

    :smile: :smile: :smile: 不知道能不能测试成功,多谢博主了

    三月的宁静 于2016-12-16 上午10:40 评论 回复