使用單個 JSON 文件設計基於塊的 WordPress 子主題
已發表: 2021-10-26從我在 2008 年開設第一家主題店的那一刻起,一直到現在,我只是一個修修補補的人,我的計劃一直是在 CSS Zen Garden 的模具中建立一個單一的主題。 這是 Dave Shea 在 2000 年代初發起的一個項目,旨在展示設計師如何僅通過 CSS 來操作網站。 HTML 將保持不變,但設計可以是任何東西。
我已經通過幾個項目多次實現了這個目標。 從技術上講,我所需要的只是 WordPress 主題中的架構聲音標記和子主題中的自定義 CSS。
這個概念很簡單,但隨著時間的推移,我的願景發生了變化。 我想創造一些東西,讓設計這些類型的兒童主題變得更加容易。 因此,我構建了自定義系統來解決 WordPress 在主題設計領域缺乏工具的問題。 不要吹噓太多,但我覺得我創造了一些方便的方法。 他們允許兒童主題設計師將值插入配置文件,例如字體系列名稱和顏色代碼。 其中大部分也可以由最終用戶通過定制器覆蓋。
到 2018 年,我已經在努力研究我的巨著,這是我構建過的最好的 WordPress 主題。 我還計劃將它作為我的最後一次。 一段時間以來,我一直在考慮退出遊戲。 但是,這是一個我必須看透的項目。
然後,新的塊編輯器炸毀了一切。 在它發布之前我已經使用它幾個月了,但我知道主題開發永遠不會一樣。 Gutenberg 項目將繼續成熟並重塑 WordPress 的未來。
我最終啟動了我的主題。 它是最早支持新區塊系統的商業產品之一。 然而,我也洩氣了。
這些是早期的塊編輯器時代。 沒有人真正知道我們會在三年或更長時間內看到什麼,但如果你稍微關註一下,你就會發現主題化會演變成與當時大不相同的東西。 我花了一年多的時間構建了一個主題系統,該系統很快就會變得無關緊要——當然,我認為我們會更早到達這個目的地。
WordPress 5.9 將發布完整站點編輯的最終子組件。 這將包括對引擎蓋下的塊主題的支持。 安裝它們的用戶可以通過站點編輯器和全局樣式界面自定義它們。
最讓我興奮的還是13年前每天早上把我吵醒的東西:兒童主題。
阻止子主題在 Gutenberg 插件中已經部分工作了幾個月。 然而,我最期待的功能直到一周前才准備好。 新補丁允許子主題覆蓋其父主題的單個值theme.json文件。 本質上,這兩個文件被合併,子文件優先。
為什麼我對這個功能如此興奮? 因為它與我在過去幾年建立的系統相同——但更好。
在 Gutenberg 的開發版本中看到這片土地後,我做的第一件事就是加載一個我一直在涉足的自定義主題。 這是我一直在構建的一個項目,目的是為了樂趣和對我自己的啟發。

然後,我在代碼編輯器中創建了一個新項目。 我添加了所需的style.css文件並插入了相應的標題字段。 除此之外,我不需要它。 我的孩子主題的設計將完全依賴於另一個功能。

我在子主題的根級別添加了一個theme.json ,並開始獲得比我在很長一段時間內獲得的更多樂趣。
我挑選了幾個秋天的顏色和一個有趣的標題字體。 幾分鐘之內,我的測試裝置上濺了一層新油漆。 設計不是革命性的或類似的東西。 我只是驚訝於通過插入一些值來改變我的設計是多麼容易。

這是我一直渴望的兒童主題類型。 我希望能夠在不同的季節和假期切換我的主題的設計元素。 我希望能夠與他人分享這些兒童主題。
正如我所說,我之前已經構建過這樣的子主題化方法(我使用 PHP 而不是 JSON)。 但是,這要強大得多,因為它依賴於標準塊系統,而不是只有少數人會使用的自定義。
你們中的一些人可能會問為什麼我沒有通過站點編輯器進行這些更改,而是創建一個子主題。 Rich Tabor 今天早些時候在 Twitter 上提出了同樣的問題。 “如果一個主題包含可以通過全局樣式修改的 JSON 和塊模板,那麼子主題有什麼用?”
假設我安裝了一個塊主題並進行了一些顏色調整。 現在,假裝我想在聖誕節來臨之際把它混合起來——加入幾種顏色並找到一種節日字體。 當我進行這些更改時,當賽季結束時,我的舊設計將不再存在,因為用戶自定義是基於活動主題存儲的。 當然,我可以記下我所有的舊設置,然後再將它們全部改回來。 但是,通過子主題進行操作意味著我只能隨時切換主題。 我的舊設置將保持不變。
也許這在很大程度上是一個邊緣案例。 這些天誰在對他們的設計進行季節性更改,對吧?
令人興奮的部分是我可以與其他人共享使用單個 JSON 文件構建的子主題。
自從該功能登陸 WordPress 以來,兒童主題一直是我的熱情所在。 在某些方面,它並沒有太大變化。 Themers 仍然可以覆蓋父級的模板。 如果他們願意,他們可以繼續添加自定義 CSS。 但現在,他們可以從單個標準化文件配置設計的任何部分。 這是值得讓我的開發人員重新考慮並構建另一個主題的事情。
我還看到了一個沒有兒童主題的未來,它仍然具有共享設計元素的相同好處。
塊模式目錄已經提供了可以與任何構建良好的 WordPress 主題一起使用的佈局。 但是,我們將來可能會拆分其他設計組件。
我想像未來 WordPress 可以像 Color Lovers 提供的那樣擁有可安裝的調色板。 只需瀏覽目錄、安裝和更改配色方案,無需找到新主題。 類似於最近的 Adrian 插件的東西可以為字體提供相同的目的。 這些是社區可能想要考慮的事情。 在這一點上,不應該有任何想法。
現在,我很高興擁有兒童主題的全部功能。 這一變化應該在本週的 Gutenberg 11.8 和今年晚些時候的 WordPress 5.9 中實現。
