为什么在wp_reDirect之后需要“退出”?

时间:2021-12-21 作者:shenkwen

这可能是一个PHP问题,但由于我在wordpress文档页面上遇到了,也许我会在这里得到更好的答案。

在…上https://developer.wordpress.org/reference/functions/wp_redirect/ 上面写着

注意:wp\\u redirect()不会自动退出,并且应该始终在调用之后退出;

我不太明白如果exit 此处省略。

PHP的doc 表示exit 是“到”;终止当前脚本;。所以我想如果wp_redirect 已调用function.php, 这个exit 接下来它将停止function.php 从跑步开始,对吗?但我为什么要这样?

1 个回复
SO网友:Tom J Nowell

当你打电话的时候wp_redirect 它发送重定向HTTP头,这就是浏览器需要重定向的全部内容,没有理由继续执行代码。所以你必须退出。wp_redirect 如果您将http头发送到重定向,则不会为您执行此操作,PHP也不会为您执行此操作。

如果你没有exit, WordPress将继续运行页面生成序列的其余部分,加载所有代码,这可能会混淆浏览器,或导致生成浏览器不感兴趣的HTML,以及浪费服务器资源。

毕竟,如果服务器告诉你去一个新的位置,你为什么还要继续加载页面?

但更重要的是,为什么PHP或WordPress会为您退出?如果你需要清理怎么办?或记录您已重定向用户?退出是您的责任,WordPress和PHP不会为您这样做,因为这会有问题。

相关推荐