これが私がしていることです:
wp_logout();
var_dump(is_user_logged_in());
var_dumpは以下を返します。
bool(true)
Wp_logout()がログアウトしないのはなぜですか?
wp_logout()は clear_auth_cookie() を呼び出します。これにより、すべての認証Cookieセットが期限切れになります。グローバル$ current_user変数の値は変更されません。技術的には、スクリプトの実行中はまだログインしています。
自分のコードでwp_logout
を使用している場合は、その直後におそらくexit
またはwp_redirect
を使用することをお勧めします。
PHPを実行し続ける必要があるがユーザーをログインさせたくない場合は、wp_set_current_user(0)
の後にwp_logout()
を呼び出してユーザーを即座に手動でログアウトさせることができます。
コードにも同じ問題がありました。私は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をアクティブに設定していたため、リダイレクト前に使用した場合も機能しませんでした