web-dev-qa-db-ja.com

ログアウトしていないwp_logout

これが私がしていることです:

wp_logout();
var_dump(is_user_logged_in());

var_dumpは以下を返します。

bool(true)

Wp_logout()がログアウトしないのはなぜですか?

3
Jarred

wp_logout()clear_auth_cookie() を呼び出します。これにより、すべての認証Cookieセットが期限切れになります。グローバル$ current_user変数の値は変更されません。技術的には、スクリプトの実行中はまだログインしています。

自分のコードでwp_logoutを使用している場合は、その直後におそらくexitまたはwp_redirectを使用することをお勧めします。

PHPを実行し続ける必要があるがユーザーをログインさせたくない場合は、wp_set_current_user(0)の後にwp_logout()を呼び出してユーザーを即座に手動でログアウトさせることができます。

5
goldenapples

コードにも同じ問題がありました。私はwp_logout()を使用してログアウトしようとしましたが、いくつかのコード変更のために私のニーズに応じて完全に機能していなかったので、wp_destroy_current_session()を使用しました。そして、wp_redirect();およびexit();

    wp_destroy_current_session();
    wp_logout();
    wp_redirect(site_url()); 
    exit();

そして、それは私にとって目覚めた。 auth_redirect()も使用できます。代わりにwp_redirect(site_url());また、私の場合はwp_set_current_user(0);ユーザー0をアクティブに設定していたため、リダイレクト前に使用した場合も機能しませんでした

0
mohitesachin217