我们最近刚刚将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重定向,但其他插件或主题有很多机会导致这种情况发生。