WordPress 6.1 将 send_headers Action 后移到准备加载文章的后面

WordPress 6.1 将 send_headers Action 移到 WordPress 常规的例程的稍后的位置,之前在确定要发送哪些页面 headers 的时候,所有 is_ 的函数(比如is_singular)都不起作用,通过此项改动,将`send_headers` 移到 WordPress 的查询解析完成之后,这些 is_ 的函数都可以用了。

这样就可以:

  • 管理页面缓存行为
  • 使用 HTTP rel=preload 标头预加载资源
  • 根据条件进行跳转,和管理其他 200 状态的场景

而目前这些场景通常是在之后的 Action(比如 template_redirect)中进行处理的,其实这样在语义上有点让人困惑,并且还效率低下。

举一个最有意义的例子,X-Pingback 这个 HTTP 标头其实只需要在文章详情页才需要发送,6.1 就是因为 send_headers 后移而得以优化。

下面我们修改之前和之后的常见的 Action 加载顺序:

未修改之前的顺序:

  • wp_loaded
  • parse_request
  • send_headers
  • parse_query
  • pre_get_posts — WP 主查询

6.1 修改之后的顺序:

  • wp_loaded
  • parse_request
  • parse_query
  • pre_get_posts — WP 主查询
  • send_headers

此项修改应该不会对现有的代码造成什么影响,除非你使用 send_headers 来处理那些真的不需要解析 WordPress 的查询参数的,那么可能需要把你的代码改到更早一些的 Action 去执行,比如提早到 wp_loaded 或者 parse_request Action。

WPJAM Basic 的 JSON API 就是使用 send_headers 来处理的,所以 WordPress 6.1 就要兼容处理了。😂

对于以后在 send_headers 添加的新代码,都可以愉快地使用所有 is_ 函数了。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
Judge each day not by the harvest you reap but by the seeds you plant.
不要问自己收获了多少果实,而是要问自己今天播种了多少种子
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容