WordPress 6.1 将 send_headers 操作移到加载的后面

从 WordPress 6.1 开始,send_headers  钩子已移至 WordPress 加载例程稍晚的位置(ticket)。以前,当您确定要发送哪些标头时,所有is_功能(如 is_singular)都不起作用。通过此更改,将 `send_headers` 移至WordPress 解析查询之后,这些功能现在可以正常工作。

现在我们可以更好地控制以下内容:

  • 管理缓存行为
  • 使用HTTP标头 rel=preload预加载资产
  • 有条件地执行重定向,并管理其他非 200 状态场景

目前,这些类型的场景通常在后期操作中被过滤,例如template_redirect;这在语义上令人困惑且效率低下。

有一个很好的代码示例,使用它变得更容易。事实上,这张工单已经改变了:X-PingbackHTTP标头只需要为文章post发送,现在可以在正确的时间发送(提交)。

让我们看看它在加载顺序方面的差异:

此更改前的操作顺序

  • wp_loaded
  • 解析请求(parse_request)
  • 发送标头send_headers
  • 解析查询(parse_query)
  • pre_get_posts — WP 主查询。

此更改后的操作顺序

  • wp_loaded
  • 解析请求(parse_request)
  • 解析查询(parse_query)
  • pre_get_posts — WP 主查询。
  • 发送标头send_headers

这对您现有的任何代码应该不会产生负面影响,除非您用send_headers来做真正应该在wp_loadedparse_request上发生的事情。所以请检查你的代码!如果您这样做,只需更改为较早的挂钩即可解决您的问题。

对于新代码,您现在可以愉快地使用所有is_功能。