為 WordPress 5.4 做準備:開發人員應了解的主題和插件更改
已發表: 2020-03-05隨著 WordPress 5.4 的發布迫在眉睫,插件和主題開發人員是時候開始測試他們的擴展並確保沒有問題了。 還有用於即將推出的功能的新 API。 昨天,核心團隊發布了 5.4 的第一個候選版本。 正式版計劃於 3 月 31 日發布。
這篇文章將作為快速指南,其中包含開發人員在未來幾週需要牢記的幾個重要更改的鏈接。 請務必測試您的插件和主題。
主題開發者

有幾個主題作者想要測試的變化。 WordPress 5.4 有一些額外的主題功能。 它還有一些與標記相關的更改,這些更改可能會破壞前端和塊編輯器中的主題設計。 不幸的是,對於想要支持多個 WordPress 版本的主題作者來說,其中一些更改可能意味著一些額外的 CSS 膨脹。
社交圖標和按鈕塊
WordPress 5.4 引入了兩個新塊:社交圖標和按鈕。 社交圖標塊允許用戶為多達 40 個不同的社交網絡插入圖標/鏈接。 按鈕塊允許用戶將多個按鈕塊組合在一起。 推出自定義塊編輯器樣式的主題作者需要考慮這些新塊,以確保它們正確輸出。
創建自定義漸變預設
新的漸變 API 允許主題作者定義自定義漸變預設,供用戶與組或按鈕塊一起使用。 主題作者需要做一些跑腿工作來改善默認漸變預設的令人眼花繚亂的問題。 通過一些工作,漸變可以成為用戶使用的有用工具。 如果主題作者不想支持漸變,他們也可以完全禁用漸變。
塊編輯器標記和样式更改
直接針對特定編輯器類的主題作者將需要檢查他們的塊編輯器樣式。 許多具有editor-前綴的類已更改為使用block-editor-前綴。 帶有.edit-post-layout__content類的包裝元素已被完全刪除。 從塊和富文本組件中刪除了幾個包裝器元素。 Core 的內置填充和塊上的負邊距已被重構,這是一個受歡迎的補充。 也許主題作者將不再需要對抗多個嵌套選擇器來提供與前端匹配的基本工作佈局。
這些變化已經打破了我見過的幾個主題。 許多主題作者很有可能需要更新他們的塊編輯器樣式。
在主題審查小組要求更多主題作者提交具有自定義編輯器樣式的主題時,這些類型的類和標記更改並不能增強信心。 主題開發人員很容易覺得他們正在打一場失敗的戰鬥。 然而,工作正在向前推進,以使編輯器標記更接近與前端的一對一匹配。 在某些時候,主題作者只能希望他們不再需要處理這些類型的變化,同時支持跨多個版本的 WordPress 的用戶。 目前,它們處於一個有點混亂的過渡階段。
日曆標記和類更改
核心團隊更改了get_calendar()函數的標記,這也影響了日曆小部件。 日曆輸出不再有<tfoot>元素。 相反,上個月和下個月的鏈接被移動到<table>元素下方的<nav>元素。
日曆輸出還添加或更改多個 ID 和類:
-
.wp-calendar-table添加到包裝器元素。 -
.wp-calendar-nav添加到導航包裝元素。 -
.wp-calendar-nav-next替換下個月鏈接上的#nextID。 -
.wp-calendar-nav-prev替換上個月鏈接上的#prevID。
這些都是突破性的變化。 任何針對舊 HTML 或 ID 的自定義 CSS 都需要更新。

塊開發人員

對於創建自定義塊的插件開發人員,WordPress 5.4 引入了幾個新的 API 和工具來使用塊系統。
塊腳手架
開發人員有一個新的 NPM 包,用於快速創建塊插件。 使用npm init @wordpress/block <plugin-name>的單個命令,腳本將創建一個新目錄並構建構建塊插件所需的適當 PHP、CSS 和 JavaScript 文件。 開發人員可以默認使用現代 JavaScript 工具,也可以選擇使用 ES5 版本。
塊腳手架包的目的是讓插件作者構建最終將進入官方塊目錄的單塊插件。
塊集合 API
Block Collections API 的工作方式與類別類似。 但是,它們基於命名空間。 當插件開發人員註冊自定義集合時,任何共享集合命名空間的塊都將出現在塊插入器的自定義部分下。 這似乎是組織塊的更聰明的方式。 對於創建塊庫的插件來說,它肯定會派上用場,提供一種將它們組合在一起的自動方式。
塊變化 API
新的 Block Variations API 允許塊開發人員從本質上創建具有變體的塊副本。 每個註冊的變體都將在塊插入器中顯示為一個單獨的塊,供用戶選擇。
此功能的一個很好的例子是新的社交圖標塊。 它是一個單一的塊,有 40 種不同社交網絡的變體。
其他與開發人員相關的更改
還有一些其他值得注意的變化涉及插件和主題開發領域。
新的導航菜單掛鉤
在等待和等待之後,開發人員終於得到了一些經常請求的鉤子,用於將自定義字段添加到導航菜單管理屏幕和定制器。 至少一張票可以追溯到 9 年前,但遲到總比沒有好。 過去,開發人員需要使用自定義 walker 類來進行一些必要的自定義。 但是,一次只能使用一個 walker 類,這意味著進行更改的多個插件不能一起工作。
核心團隊在導航菜單管理屏幕上添加了新的wp_nav_menu_item_custom_fields掛鉤,該掛鉤出現在各個菜單項的“移動”按鈕之前。 為了與管理員平價,導航菜單項在定制器中有一個新的wp_nav_menu_item_custom_fields_customize_template 。 這些鉤子將允許開發人員添加將自定義數據添加到導航菜單項所需的自定義表單字段。
apply_shortcodes() 別名函數
WordPress 5.4 引入了一個新的apply_shortcodes()函數。 它是do_shortcode()函數的別名。 新函數提供了一個語義更正確的函數名稱。 通常,前綴為do_的函數期望輸出或某種類型的操作。 前綴為apply_的函數期望返回數據。
如果您正在創建具有短代碼感知區域的主題或插件,您將需要切換到新功能。 雖然do_shortcode()函數當前未標記為棄用,但這應該是最終目標。
