我会使用下面的代码,以便在我的wordpress网站上?logout
附加到URL的末尾,用户将注销。如果用户访问一个页面,如mysite.com/?logout
或mysite.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
目录登录Wordpress网站访问站点上的页面或帖子,可能是带有评论框的页面或帖子,然后附加
?logout
页面将正常加载到URL,评论框将显示您的姓名,并显示您已登录,可以留下回复重新加载页面(无论是否在URL中附加“登录”选项)
页面现在已注销Desired Behavior
登录Wordpress后,访问带有?login
附加到URL将完成注销过程,并显示页面,就像加载时您已注销一样,无需刷新页面。我不认为我能更早地接触到Wordpress,所以我不知道如何避开它。
最合适的回答,由SO网友:Steve Brown 整理而成
This should do it:
add_action(\'plugins_loaded\', function(){
wp_set_current_user(0);
},0);