自己真的有麻烦...终于搞定了.. !! (经过几天的试验并将我的头撞向它)
有一点要确定的是,您还没有发送任何输出,但是会话cookie不会写入,因为它需要在标题中。 此外,如果你打电话wp_signon在会话开始之前,有会议 信息获取也失去了......啧......奇怪,但我有两个发生 给我。安美居没有再费任何周折......
//创建(例如)
$userdata = array('user_login'->$username,'user_pass'->$password);
$user_id = wp_insert_user($userdata);
//确保用户名是最新的......我需要这个,因为是 钩到user_register新用户被称为wp_insert_user但 挂钩被称为用户创建后,所以它需要一个数据库 缓存清除工作,否则设置错误的用户名... 因此,用户被自动登录一个页面 - 荒谬。 (这是Register Plus Redux做btw的挂钩。)
wp_cache_delete($user_id, 'users');
wp_cache_delete($username, 'userlogins');
$userdata = get_userdata($user_id);
$username = $userdata->user_login;
//确保用户会话已开始
$vsessionid = session_id();
if (empty($vsessionid)) {session_name('PHPSESSID'); session_start();}
//登录当前用户
wp_clear_auth_cookie();
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;
$user = wp_signon($creds, false);
//检查它的工作
if (is_wp_error($user)) {$error = $user->get_error_message();}
else {
wp_set_current_user($user_id);
// The next line *really* seemed to help!
do_action('set_current_user');
$current_user = wp_get_current_user();
if (is_wp_error($current_user)) {$error = $user->get_error_message();}
}
if ($error) {echo $error; print_r($userdata); print_r($current_user);}
没有错误信息 - 没有任何反应。 wp_setcookie已弃用。 – Sbad 2011-01-20 08:37:06