无法使用wp_sign_on()和set_current_user()登录用户

时间:2018-03-04 12:14:25

标签: php wordpress

我在尝试在wordpress中设置登录系统时遇到了一些麻烦。

我使用来自帖子数据的用户输入来运行wp_sign_on(),它返回用户对象。然后我使用$ user-> ID设置当前用户; 问题是没有任何反应,用户没有登录。(例如,如果我刷新页面或转到另一个页面,我仍然没有登录。)

我试图谷歌这个问题,但没有一个解决方案修复它。我肯定错过了一些东西。代码工作正常但用户实际上并未实际登录...

以下代码:

            $username = $_POST['username'];
            $password = $_POST['password'];

            $creds = array();
            $creds['user_login'] = $username;
            $creds['user_password'] = $password;
            $creds['remember'] = true;

            $user = wp_signon( $creds, false ); 
            print_r( $user ); // I can see the user object printed, so it works fine.
            $user_id = $user->id; // I get the user ID
            if ( is_wp_error($user) )
            echo $user->get_error_message();
            else
            {
                wp_set_current_user( $user_id, $user_login );
                //The following three lines come from a solution found 
                online, but it doesn't work
                wp_set_auth_cookie( $user_id );
                do_action( 'wp_login', $user_login );
                wp_redirect( remove_query_arg( 'login' ) ); 
                exit; 
            }
[...]

1 个答案:

答案 0 :(得分:0)

尝试在wp_set_auth_cookie() Codex

之后使用wp_set_current_user()功能