提議的 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 插件會為其註入更多活力,從而允許貢獻者繼續開發依賴它的新功能。