如何在页面加载之前将用户从WordPress注销?

时间:2011-12-07 作者:cwd

我会使用下面的代码,以便在我的wordpress网站上?logout 附加到URL的末尾,用户将注销。如果用户访问一个页面,如mysite.com/?logoutmysite.com/test-page/?logout 或任何$_GET[\'logout\'] 变量已设置,他/她将被注销。

if( isset($_GET[\'logout\']) ){
    add_action(\'plugins_loaded\', \'wp_logout\',0);            
}
我面临的问题是,即使我将此操作添加到plugins_loaded, 它位于list of action hooks, 显示的页面仍将显示正在登录的用户。如果页面在后续加载时刷新,它将显示页面的“注销”版本,但不会在同一请求中显示。

Steps to recreate problem:

<将此代码添加到插件或functions.php 文件我在mu-plugins 目录?logout 页面将正常加载到URL,评论框将显示您的姓名,并显示您已登录,可以留下回复重新加载页面(无论是否在URL中附加“登录”选项)
  • 页面现在已注销

    Desired Behavior

    登录Wordpress后,访问带有?login 附加到URL将完成注销过程,并显示页面,就像加载时您已注销一样,无需刷新页面。

    我不认为我能更早地接触到Wordpress,所以我不知道如何避开它。

  • 2 个回复
    最合适的回答,由SO网友:Steve Brown 整理而成

    This should do it:

    add_action(\'plugins_loaded\', function(){
        wp_set_current_user(0);
    },0);
    
    SO网友:Joseph Leedy

    尝试使用wpinit 改为挂钩。

    结束

    相关推荐

    插件中未显示ADMIN_NOTES

    我知道我可能在做一些愚蠢的事情,但我就是不能让它运行。我正在尝试为我的插件设置一个小API,并创建一个类来更轻松地显示管理通知。以下是我所拥有的:// Send data to class to get HTML for admin notice $efpd=Efpdd::getInstance(); $plugin_update = $efpd->efpd_admin_notice( $notice_info = array( \'type\