提议的 Web Fonts API 不会出现在 WordPress 5.9 中,可能首先登陆古腾堡

已发表: 2021-11-12

在 WordPress 5.9 大获成功之后,提议的网络字体 API 被搁置。 该功能将标准化主题和插件开发人员加载字体的方式,并为未来面向用户的功能奠定基础。

乔诺·奥尔德森(Jono Alderson)于 2019 年 2 月为该功能开了一张票。最近几个月,该提案加快了速度。 拉取请求有超过 200 条票内消息、93 次提交和来自两个核心提交者的代码批准。 API 似乎准备好了。 然而,在过去的几天里,它陷入了停滞。

WordPress 首席开发人员 Andrew Ozz 基本上阻止了新 API 在 5.9 中登陆的可能性。 他表示,他认为该提案尚未为 WordPress 做好准备。

“纯粹作为代码看起来不错,”他在票中写道。 “它确实有据可查(感谢 [Tonya Mark]!)。 但是,我仍然看不出这将如何让 WordPress 在短期和长期内变得更好。 我们正在与 [Andrei Draganescu] 聊天,他建议理想情况下这应该是一个功能插件,我同意。 然后就有可能在生产中对其进行真正的测试,验证(或拒绝)在创建它时所做的假设,并使其成为 WordPress 的真正有价值的补充。 不幸的是,现在对于 5.9 来说已经太晚了。”

测试 API 功能插件的问题之一是它们不经常被采用,正如票证中的其他人所指出的那样。 在大多数情况下,开发人员不会在生产中依赖它们。 而且,普通最终用户不会安装特定于开发人员的东西。

“建议将其作为一个功能插件来完成是一种延迟几年的优雅方式,”API 背后的开发人员之一 Ari Stathopoulos 说。 然而,他指出 REST API 是一个例外,它的表现足以被移植到 WordPress 中。

核心 WordPress 提案可能会被推送到 Gutenberg 插件中以供进一步探索。 这将是作为单独的功能插件启动和进入 WordPress 5.9 之间的一种折衷。

Web 字体 API 与块系统没有直接关系。 传统主题和块主题以及插件今天都可以使用该功能。 然而,一些 Gutenberg 提案依赖于 API 的存在,例如允许主题作者通过他们的theme.json文件定义网络字体。

Ozz 列出了有关该提案的几个问题,并且有几个开发人员回答了每个问题。 然而,他的主要论点取决于为什么 API 中的所有内容都是必要的的实用性,并指出先前的回复“原则上”并且似乎基于假设。

在最基本的层面上,网络字体 API 将允许开发人员注册和加载本地托管的字体或来自 Google Fonts 的字体。 开发人员还可以在两个默认值之外添加自定义提供程序。 提议的 API 的第一次迭代更多是关于为未来的 WordPress 版本奠定基础。

该功能的吸引力不仅仅是加载字体。 从技术上讲,如果他们愿意,主题作者可以用一行代码做到这一点。 如果他们想遵循当前的核心 WordPress 标准,至少在前端是四行代码。

Stathopoulos 滔滔不绝地列出了这样一个 API 将为 WordPress 及其扩展带来的改进列表。

  • 主题可以通过他们的theme.json文件定义字体。
  • 编辑器中字体系列选择器中的字体预览。
  • 显示字体系列的有效字体粗细和样式。
  • 改进了前端性能。
  • 服务器端本地化以获得更好的性能和隐私。

这是支持将 API 包含在核心 WordPress 中的一小部分论据。

“Gutenberg 有许多改进处于不确定状态,等待网络字体 API,”Stathopolous 在票证中写道。 “目前没有网络字体 API 是一个障碍。 在我们的愿望清单中,这不是一件值得拥有的物品,而是向前迈进的必要条件。”

目前,没有标准专门与 WordPress 中的网络字体相关。 主题作者捎带了现有的功能,用于将第三方样式表或具有@font-face规则的自定义样式表加入队列。 多年来,这通常是主题作者社区公认的做法。

然而,很多人都勉强接受了。 一些人创建了自定义脚本来缓解痛点。 许多其他人只是复制最新的默认 WordPress 主题碰巧使用的任何方法。

目标之一是让开发人员不必担心加载网络字体所涉及的所有额外工作。 确实不需要主题来弄清楚如何在编辑器和前端加载它们,处理预加载或考虑本地化。 随着主题的老化和第三方 API(如 Google Fonts)的变化,如果 WordPress 在后台处理它,则无需更新主题。

当您将插件加入混合时,如何最好地加载网络字体的问题会成倍增加。 通常,在设计方面,主题会承担所有繁重的工作。 但是,一些插件会跳入 WordPress 世界的那一侧,以添加额外的样式选项。 加载相同字体的多个副本时,无法解决冲突。 也没有任何可靠的方法可以禁用主题的字体并通过插件替换它们。

一位这样的插件作者给我发了电子邮件,让我知道我已经知道的消息。 Web 字体 API 似乎不再登陆 WordPress 5.9。 开发人员正准备在新功能之上推出一个新网站和服务。 他们甚至有一个吉祥物。 到目前为止,它可能只需要等待。

功能冻结的截止日期是两天前。 因此,不太可能将 Web 字体 API 添加回 WordPress 5.9 里程碑。 也许开发人员会在 6.0 登陆时看到它。 也许将其推向 Gutenberg 插件会为其注入更多活力,从而允许贡献者继续开发依赖它的新功能。