自己真的有麻煩...終於搞定了.. !! (經過幾天的試驗並將我的頭撞向它)
有一點要確定的是,您還沒有發送任何輸出,但是會話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