首页 > wordpress CMS主题制作 > 自定义wordpress CMS主题的注册页面:添加密码输入框

自定义wordpress CMS主题的注册页面:添加密码输入框

作者: 分类:wordpress CMS主题制作 点击: 10,128 次

    使用过wordpress程序的朋友应该知道,wordpress自带的注册页面默认是不带密码输入框的,新用户注册时,通过邮箱发送密码修改链接,wordpress会在这个修改链接页面随机生成一个密码,新用户可以在这个链接页面修改密码,也可以登录后在后台修改。这样绕着起,对于用户来说,实在有点麻烦。如果在注册页面可以像其它论坛网站一样,可以直接在注册页面可以输入密码,那就好了。接下来,我们就来为wordpress CMS主题的注册页面自定义一下——添加密码输入框,实现效果如本站登录页面(如下图):

    自定义wordpress CMS主题的注册页面:添加密码输入框

    第一步:通过register_form勾子向注册表单添加密码、重复密码和验证输入框。代码如下:

    <?php

    //给注册页面添加 :密码输入、本站站名验证
    add_action( 'register_form', 'ts_show_extra_register_fields' );
    function ts_show_extra_register_fields(){
    ?>
    <p>
    <label for="password">密码<br/>
    <input id="password" class="input" type="password" tabindex="30" size="25" value="" name="password" />
    </label>
    </p>
    <p>
    <label for="repeat_password">重复密码<br/>
    <input id="repeat_password" class="input" type="password" tabindex="40" size="25" value="" name="repeat_password" />
    </label>
    </p>
    <p>
    <label for="are_you_human">本站站名<br/>
    <input id="are_you_human" class="input" type="text" tabindex="40" size="25" value="" name="are_you_human" />
    </label>
    </p>
    <?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>2次输入的密码不一至" );
    }
    if ( strlen( $_POST['password'] ) < 8 ) {
    $errors->add( 'password_too_short', "<strong>错误: </strong> 密码必须至少有 8 个字符长" );
    }
    if ( $_POST['are_you_human'] !== get_bloginfo( 'name' ) ) {
    $errors->add( 'not_human', "<strong>错误: </strong> 请输入正确的本站站名。" );
    }
    }

    第三步:添加“注册成功”

    如果注册成功了,就向数据库添加用户信息。

    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 == '注册确认信将会被寄给您。' ) {
    $text = '【本站站名】:'.get_bloginfo('name').'<br><b style="color:red">请正确填写邮箱,修改密码时需要用到。</b>';
    }
    return $text;
    }

    发了,通过以上4步骤,我们的wordpress CMS主题的注册页面就自定义成功了。注:上面的代码需要放在wordpress 主题 的functions.php文件中。



文章作者:码不停蹄
本文地址:https://wanlimm.com/77201807286264.html
版权所有 © 转载时必须以链接形式注明作者和原始出处!

上一篇:
下一篇:

或许你会感兴趣的文章:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.