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

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

    作者: 分类:wordpress CMS主题制作 点击: 92 次
    wordpress CMS主题:ssmay主题

      使用过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文件中。

    文章作者:高时银博客
    本文地址:http://wanlimm.com/77201807286264.html
    本文时间:2018-07-28 09:31:47
    版权所有 © 转载时必须以链接形式注明作者和原始出处!

    上一篇:
    下一篇:
    wordpress CMS主题:ssmay主题

    或许你会感兴趣的文章:

    发表评论

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

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