我在插件內部使用wp_signon,並在短代碼函數內部登錄用戶。爲了澄清,短代碼正在從頁面內容中調用。 wp_signon函數成功返回用戶信息。但is_user_logged_in()返回false。爲什麼發生這種情況,或者我如何設置is_user_logged_in()爲true,以便用戶保持登錄狀態?如何在Wordpress中設置is_user_logged_in()true
ob_start();
$user_data = array();
$user_data['user_login'] = $username;
$user_data['user_password'] = $password;
$user_data['remember'] = $remember;
$user = wp_signon($user_data, false);
ob_get_clean();
if (is_wp_error($user)) {
$err = $user->get_error_message();
} else {
$_SESSION['fc_user']=$user->ID;
var_dump($user); // gives the user info
var_dump(is_user_logged_in()); // gives false
}
您的意思是用戶不能在您的網站上保持登錄狀態? $記住如果你想在這個網站上玩遊戲,那麼你需要記住。如果您的會話中沒有任何數據,is_user_logged_in()將不起作用。 wp_signon()將處理你的會話。但爲什麼在其他情況下你設置$ _SESSION ['fc_user']?你開始會議了嗎? –
@Faysal是的,我確實使用session_start()開始了會話。 – Nafis
@FaysalHaque,我不明白你的意思是「$記憶需要真實」。但我試着用wp_signon($ user_data,true);以及。它仍然沒有工作。 – Nafis