前面分享了wordpress自定义注册页面的制作,此文为大家分享wordpress自定义登陆页面的制作,感谢露兜的无私分享。

自定义登陆页面和注册页面的方法相同,具体流程如下:
1、复制page.php并重命名为login.php;
2、找到<?php the_content(); ?>标签,在其后添加以下表单代码:

  1. <?php the_content(); ?>   
  2. <?php if(!emptyempty($error)) {   
  3. echo ‘<p class=“ludou-error”>’.$error.'</p>’;   
  4. }   
  5. if (!is_user_logged_in()) { ?>   
  6. <form name=“loginform” method=“post” action=“<?php echo $_SERVER[“REQUEST_URI“]; ?>” class=“ludou-login”>   
  7.     <p>   
  8.       <label for=“log”>用户名<br />   
  9.         <input type=“text” name=“log” id=“log” class=“input” value=“<?php if(!empty($user_name)) echo $user_name; ?>” size=“20” />   
  10.       </label>   
  11.       
  12.     <p>   
  13.       <label for=“pwd”>密码(至少6位)<br />   
  14.         <input id=“pwd” class=“input” type=“password” size=“25” value=“” name=“pwd” />   
  15.       </label>   
  16.     </p>   
  17.       
  18.     <p class=“forgetmenot”>   
  19.       <label for=“rememberme”>   
  20.         <input name=“rememberme” type=“checkbox” id=“rememberme” value=“1” <?php checked( $rememberme ); ?> />   
  21.         记住我   
  22.       </label>   
  23.     </p>   
  24.       
  25.     <p class=“submit”>   
  26.       <input type=“hidden” name=“redirect_to” value=“<?php if(isset($_GET[‘r’])) echo $_GET[‘r’]; ?>” />   
  27.       <input type=“hidden” name=“ludou_token” value=“<?php echo $token; ?>” />   
  28.       <input type=“submit” name=“wp-submit” id=“wp-submit” value=“登录” />   
  29.     </p>   
  30. </form>   
  31. <?php } else {   
  32. echo ‘<p class=“ludou-error”>您已登录!</p>’;   
  33. } ?>  

3、在login.php页面顶部添加以下代码:

  1. <?php   
  2. /*
  3. Template Name: 自定义登陆页面  
  4. */    
  5. if(!isset($_SESSION))   
  6.   session_start();   
  7.     
  8. if( isset($_POST[‘ludou_token’]) && ($_POST[‘ludou_token’] == $_SESSION[‘ludou_token’])) {   
  9.   $error = ;   
  10.   $secure_cookie = false;   
  11.   $user_name = sanitize_user( $_POST[‘log’] );   
  12.   $user_password = $_POST[‘pwd’];   
  13.   if ( emptyempty($user_name) || ! validate_username( $user_name ) ) {   
  14.     $error .= ‘<strong>错误</strong>:请输入有效的用户名。<br />’;   
  15.     $user_name = ;   
  16.   }   
  17.     
  18.   ifemptyempty($user_password) ) {   
  19.     $error .= ‘<strong>错误</strong>:请输入密码。<br />’;   
  20.   }   
  21.     
  22.   if($error == ) {   
  23.     // If the user wants ssl but the session is not ssl, force a secure cookie.   
  24.     if ( !emptyempty($user_name) && !force_ssl_admin() ) {   
  25.       if ( $user = get_user_by(‘login’, $user_name) ) {   
  26.         if ( get_user_option(‘use_ssl’, $user->ID) ) {   
  27.           $secure_cookie = true;   
  28.           force_ssl_admin(true);   
  29.         }   
  30.       }   
  31.     }   
  32.         
  33.     if ( isset( $_GET[‘r’] ) ) {   
  34.       $redirect_to = $_GET[‘r’];   
  35.       // Redirect to https if user wants ssl   
  36.       if ( $secure_cookie && false !== strpos($redirect_to, ‘wp-admin’) )   
  37.         $redirect_to = preg_replace(‘|^http://|’, ‘https://’, $redirect_to);   
  38.     }   
  39.     else {   
  40.       $redirect_to = admin_url();   
  41.     }   
  42.       
  43.     if ( !$secure_cookie && is_ssl() && force_ssl_login() && !force_ssl_admin() && ( 0 !== strpos($redirect_to, ‘https’) ) && ( 0 === strpos($redirect_to, ‘http’) ) )   
  44.       $secure_cookie = false;   
  45.       
  46.     $creds = array();   
  47.     $creds[‘user_login’] = $user_name;   
  48.     $creds[‘user_password’] = $user_password;   
  49.     $creds[‘remember’] = !emptyempty$_POST[‘rememberme’] );   
  50.     $user = wp_signon( $creds$secure_cookie );   
  51.     if ( is_wp_error($user) ) {   
  52.       $error .= $user->get_error_message();   
  53.     }   
  54.     else {   
  55.       unset($_SESSION[‘ludou_token’]);   
  56.       wp_safe_redirect($redirect_to);   
  57.     }   
  58.   }   
  59.   
  60.   unset($_SESSION[‘ludou_token’]);   
  61. }   
  62.   
  63. $rememberme = !emptyempty$_POST[‘rememberme’] );   
  64.     
  65. $token = md5(uniqid(rand(), true));   
  66. $_SESSION[‘ludou_token’] = $token;   
  67. ?>  

4、后台 》 页面 》 新建页面 》 选择自定义登陆页面模板即可。

声明:本站分享的WordPress主题/插件均遵循 GPLv2 许可协议(免费开源),相关介绍资料仅供学习参考,实际版本可能会因版本迭代或开发者调整而产生变化,如程序中涉及有第三方原创图像、设计模板、远程服务等内容,应获得作者授权后方可使用。本站不提供该程序/软件的产品授权与技术服务,亦不收取相关费用。