我们最近刚刚将WordPress网站升级到5.1.1
升级后,我们在执行wp_logout()
WordPress的功能。不知怎的,我们得到了302
响应,但未显示错误/警告。
我把它缩小到wp_logout()
并确定wp_destroy_current_session();
和wp_clear_auth_cookie();
工作正常!
这意味着错误发生在wp_logout()
被称为:
do_action( \'wp_logout\' );
我的问题是:
外部插件是否可能以某种方式损坏wp_logout
具有可以中断流程并提供302
或者里面有什么5.1.1
受影响的wp_logout
以某种方式
SO网友:MikeNGarrett
5.1/5.1.1中发生了很多变化,但我在WordPress core中看到的变化不会单独导致302个重定向。
1。wp_logout
可插拔
wp_logout
是一个
pluggable function. 这意味着任何人都可以重写该函数并使其执行不同的操作,因为该函数包装在一个条件中,用于检查具有相同名称的其他函数。以下是
wp_logout
:
if ( ! function_exists( \'wp_logout\' ) ) :
wp_destroy_current_session();
wp_clear_auth_cookie();
/**
* Fires after a user is logged-out.
*
* @since 1.5.0
*/
do_action( \'wp_logout\' );
endif;
2。wp_logout
调用ado_action
钩子函数的最后一部分是调用do_action
任何人都可以使用它添加到函数中,包括重定向。
3。wp_logout
调用其他函数
wp_logout
呼叫
wp_destroy_current_session
和
wp_clear_auth_cookie
. 这两种情况都可能使事情复杂化。
wp_destroy_current_session
可以通过修改来使用其他系统,如Redis storage或其他方法
session_token_manager
滤器
wp_clear_auth_cookie
是一个可插拔功能,并且还具有
do_action
钩
所以,要回答你的问题
WordPress 5.1.1没有更改任何可能导致调用的内容
wp_logout()
抛出302重定向,但其他插件或主题有很多机会导致这种情况发生。