Long story short.
在wp配置中。php:
define(\'WP_DEBUG\', true);
define(\'WP_DEBUG_DISPLAY\', false);
define(\'WP_DEBUG_LOG\', true);
在我的插件的主文件中,在构造函数中:
public function __construct(){
error_log("this is properly logged");
add_action( \'wp_logout\', array($this, \'logout\') );
}
然后注销方法:
public function logout(){
error_log("never logged");
}
永远不会执行注销方法。为什么?
The whole story
我允许用户使用OpenID连接通用插件进行登录/注册。当地一切正常。在远程服务器上,我只在注销时遇到问题。
如果我手动到达与注销相关的端点,则会在标识提供程序上正确关闭会话。但当用户从wordpress注销时,未到达端点。实际上,在登录时,在注销后,前一个用户的会话将在不要求凭据的情况下恢复。
考虑到OpenID连接的一般问题,我试图在注销挂钩上以编程方式到达端点。什么都没有出现,所以我尝试在logout方法中放入一些error\\u log进行调试,但它们从未执行,所以wp\\u logout钩子从未触发。为什么?