IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    WordPress前台登录页面功能实现(非插件)

    Csyor发表于 2014-07-30 13:12:53
    love 0

    很早以前写过一篇WordPress前台登录页面功能实现(非插件),是关于自定义注册页面的教程,最近看到有朋友问到“有了注册功能 还有登陆功能有吗”,答案是肯定的,下面Csyor就把本站的登陆页面功能的实现代码放出来,希望能够给与各位一点点帮助。

    预览效果:http://www.csyor.com/login (登陆以后不会出现登陆页面)

    友情提示:以下代码是本站使用,只提供对应登陆功能页面的实现,可能会不符合各位站点的主题风格,请自行修改该,谢谢。

    代码不会被执行
    exit;
    }
    
    $redirect_to = sanitize_user( $_REQUEST['redirect_to'] );
    if( !empty($_POST['csyor_login']) ) {
    $error = '';
    $sanitized_user_login = sanitize_user( $_POST['user_login'] );
    $rememberme = $_POST['rememberme']?true:false;
    $user_pass = $_POST['user_pass'] ;
    $comment_aaa      	  = ( isset($_POST['aaa']) ) ? trim($_POST['aaa']) : '0';
    $comment_bbb          = ( isset($_POST['bbb']) ) ? trim($_POST['bbb']) : '0';
    $comment_subab        = ( isset($_POST['subab']) ) ? trim($_POST['subab']) : '0';
    
    global $wp_hasher;  
    if ( $sanitized_user_login == '' ) {
    $error .= '

    错误:请输入您的登陆账号。

    '; }elseif ( !username_exists( $sanitized_user_login ) ) { $error .= '

    错误:该用户名不存在,赶紧注册一个吧。

    '; }elseif($user_pass == ''){ $error .= '

    错误:请输入您的登录密码。

    '; }elseif(((int)$comment_subab)!=(((int)$comment_aaa)+((int)$comment_bbb))){ $error .= '

    错误:请输入正确的验证数字。

    '; }elseif ( empty($wp_hasher) ) { require_once( './wp-includes/class-phpass.php'); $wp_hasher = new PasswordHash(8, TRUE); $pass = get_user_pass($sanitized_user_login); $data = $wp_hasher->CheckPassword($user_pass,$pass); if($data){ $user = get_userdatabylogin($sanitized_user_login); $user_id = $user->ID; // 自动登录 wp_set_current_user($user_id, $user_login); wp_set_auth_cookie($user_id,$rememberme); do_action('wp_login', $user_login); wp_safe_redirect( $redirect_to ); }else{ $error .= '

    错误:登陆账号和密码不匹配。

    '; } } } ?>
    当前位置: /">首页 >

    '.$error.''; } if (!is_user_logged_in()) { ?>
    request)); ?>" method="post">

    * 请输入您的用户名。

    * 请输入您的登录密码。

    * (+=?) 请输入计算结果。

    " type="hidden" /> " type="hidden" />

    /repass">忘记密码?

    "/>

    您已登陆成功!'; } ?>

    上述代码中使用到了一个自定义get_user_pass函数,作用是根据用户名获得用户密码,请自行添加到functions.php文件的之间任意位置。get_user_pass函数如下:

    //根据用户名获得用户密码
    function get_user_pass($user=''){
     $user="'".$user."'";
     global $wpdb;
     $user_pass = $wpdb->get_col("SELECT user_pass FROM $wpdb->users WHERE user_login = $user ORDER BY ID");
     foreach($user_pass as $pass){
     return $pass;
     }
    }
    


沪ICP备19023445号-2号
友情链接