如何在自定义登录框中添加记住我的功能?

时间:2010-04-26 08:33:10

标签: php wordpress cookies

在我的主题中,有登录的自定义页面。在functions.php中的登录功能就像这样

   function log_in($username, $password) {

    $user = parse_user($username);

    $username = $username;
    $password = $password;

    if(isEmptyString($username)) return new WP_Error('username', 'required');
    if(isEmptyString($password)) return new WP_Error('password', "required");
    if(!wp_check_password( $password, $user->user_pass ) ) return new WP_Error('wrong_password', "wrong");

    wp_set_auth_cookie($user->ID, $remember);
    wp_login($username, $password);

    redirect_profile();

}

function parse_user($info = null, $return = 'object') {
    if ( is_null( $info ) ) {
        global $current_user;
        if ( empty( $current_user->ID ) ) return null;
        $info = get_userdata( $current_user->ID );
    }
    elseif ( empty( $info ) ) {
        return null;
    }
    if( $return == 'ID' ) {
        if ( is_object( $info ) ) return $info->ID;
        if ( is_numeric( $info ) ) return $info;
    }
    elseif( $return == 'object' ) {
        if ( is_object( $info ) && $info->ID) return $info;
        if ( is_object( $info )) return get_userdata( $info->ID );
        if ( is_numeric( $info ) ) return get_userdata( $info );
        if ( is_string( $info ) ) return get_userdatabylogin( $info );
    }
    else {
        return null;
    }
}

我想为用户添加“记住我”复选框,直到他们注销为止。我该如何添加?请帮帮我。谢谢。

2 个答案:

答案 0 :(得分:1)

“记住我”按钮通常只是对内部cookie设置的简单调整。在浏览器退出时,会删除会被删除的会话cookie,“记住我”登录cookie会获得一些未来的到期点(一天,一个月,一年等等),所以它会在浏览器关闭后继续存在

在伪代码中,你有:

if (form_value('remember_me') == 'yes) {
     set_long_term_cookie();
} else {
     set_session_cookie();
}

答案 1 :(得分:0)

“在WordPress主题上添加登录表单”(包括记住我的功能): http://www.wprecipes.com/add-a-login-form-on-your-wordpress-theme

另外:http://www.problogdesign.com/how-to/how-to-create-a-wordpress-login-form-overlay/

等...