WordPress 6.1 引入了一个 可供主题作者使用的新标头(header)。这允许第三方(非WP官方库)主题避免意外地被来自 WordPress.org 主题目录的类似名称的主题更新所覆盖。
以前,任何使用与 WordPress.org 上托管的主题相同的 slug
的自定义主题都冒着被后者更新覆盖的重大风险。
WordPress 6.1 引入了一个新的 Update URI
主题标头字段。如果这个新字段的值匹配除 https://wordpress.org/themes/{$slug}/
或 w.org/theme/{$slug}
之外的任何 URI,WordPress 将不会尝试更新它。
如果设置, Update URI
标头字段应该是一个 URI 并具有唯一的主机名。
一些例子包括:
https://wordpress.org/themes/example-theme/
https://example.com/my-theme/
my-custom-theme-name
Update URI: false
也可以,除非有处理 false
主机名的代码,否则主题永远不会收到更新通知。
如果标头存在,则 WordPress.org API当前仅在主题匹配以下格式时才返回主题更新:
https://wordpress.org/themes/{$slug}/
w.org/theme/{$slug}
如果标头有任何其他值,API 将不会返回结果,并将忽略主题以进行更新。
此外,WordPress 6.1 引入了 update_themes_{$hostname}
过滤器,第三方主题可以使用它来为给定的主机名提供更新。它们可用于过滤多个用例中的更新响应。
这个新的钩子过滤给定主题主机名的更新响应。钩子名称的动态部分 $hostname
, 是指在 Update URI
标头字段中指定的 URI 的主机名。
钩子有四个参数:
$update
:具有最新详细信息的主题更新数据。默认false
。$theme_data
:主题提供的标题列表。$theme_stylesheet
:主题样式表。$locales
:已安装的语言环境以查找翻译。
请注意,由 WordPress.org 托管的主题的作者不需要使用这个新标头。
作为参考,请参阅票证 #14179和变更集 [53933]。