Wordpress签名用户丢失

时间:2014-06-12 07:46:22

标签: wordpress login

我使用上一页的会话变量以编程方式登录Wordpress中的用户(在发送标题之前)。稍后在同一页面的body部分中,我将var_dump:wp_get_current_user()。这将返回我登录的WP_User。在“登录”部分,我尝试了wp_signon(),wp_set_current_user()和wp_set_auth_cookie()的组合。

问题来了,当我离开此页面时,用户不再登录。当我使用wp-login.php时,用户仍然保持登录状态。我已经挣扎了很长一段时间,似乎无法找到,为什么用户不会保持登录状态。

有人可以帮忙吗。我将在下面添加当前使用的代码片段:

$creds = array(
"user_login" => $_SESSION['email'],
"user_password" => $newPass,
"remember" => true
);

$user = wp_signon( $creds );
if ( is_a( $user, 'WP_User' ) ) {
wp_set_current_user( $user->ID, $user->user_login );
wp_set_auth_cookie( $user->ID, true );
}

// Code follows ...


<body>
<?php if ( is_user_logged_in() ) var_dump(wp_get_current_user()); ?>

2 个答案:

答案 0 :(得分:0)

它在哪里执行?你需要把它放在一个动作中。使用:     ADD_ACTION(&#39; theme_setup&#39;&#39; your_code&#39);     function your_code(){         //登录代码块在这里     };

答案 1 :(得分:0)

我最终将一段代码移动到另一个文件。我没有提到的是我在同一页面上使用了 wp_create_user 。只要我将 wp_set_current_user wp_set_auth_cookie 替换为 wp_signon 并将其移至单独的页面,一切都运行良好。