問題描述

好的,我經常看到人們談論孩子的主題和使用它們的原因,而不是修改現有的主題,但他們似乎都圍繞着這樣一個想法,如果父主題被更新,所有的變化將會丟失。當我以前創建了網站時,我一直重複出現主題,更改了 style.css 中的主題名稱,直接在那裏工作。在我看來,使用單個主題而不是子主題將節省開銷,並允許更好地控制代碼 – 刪除不必要的功能,而不是圍繞它們工作。如果我遇到問題,我總是有原始的主題文件來引用,如果父主題被更新,如果功能名稱和這樣的改變,我的小孩主題仍然可以破壞,所以我不認為這是真正的好處。

我的網頁搜索沒有太多關於這個話題保存”developer preference”,這不是真的一個原因。

在重複和重命名主題時使用兒童主題有什麼真正的好處嗎?

最佳解決方案

兒童主題對於主要想要對其主題進行風格更改但不希望或者知道如何維護底層代碼的用户很有用。 Grokking PHP /WordPress 主題開發與 grokking CSS 完全不同。

兒童主題對於想要對其主題進行小功能更改的用户也是有用的。這對於提供很多修改方法的主題特別有用:動作/過濾器鈎子,可插拔功能等。這樣的模塊可以通過自定義插件輕鬆實現,但是這樣的插件只適用於正確的主題是活躍的,所以把這個代碼放在一個兒童主題中是非常有意義的。

如果你喜歡維護一個分叉的主題,並發現你的修改超過了一個孩子主題是合理的,那麼通過一切手段:fork 主題。

這一切歸結為對個人最終用户最有利的方法。

次佳解決方案

除了 Chip Bennets 的答案

像我這樣的開發人員有自己的自定義框架,或者使用像 Genesis,Hybrid 這樣的框架。這些框架不會捆綁太多的樣式,而是更多的功能,如自己的模板和掛鈎機制。有時還會像 CPT 或 CT 基礎類,元框庫,css 框架等等。通常只需簡單地將所有的代碼保存在分離的回收中,將它們捆綁在一個”Theme” 中,然後再使用您的子主題中的這些部分。

在我的情況下,我的框架/庫/父主題沒有什麼比我的庫部分的加載機制,我的鈎子和 tempalting 和一個引導函數。在一個小題目中,我可以定義一個特定任務需要什麼,添加單個任務模塊或擴展父基類。最後但並非最不重要的:Child Theme 包含我所有的 UI 部分:樣式,腳本,圖像。

所以對於我和許多其他開發者來説,這只是一個整潔的方式來保持廣義,有組織和可重複使用的東西。

第三種解決方案

兒童主題最大的用途之一就是 MUWP 實例。通常,在多站點安裝中,相關網站共享一些或大多數主題,但可能需要具有一些自定義頁面佈局或元素樣式。在這種情況下,使用兒童主題很有意義。相同的元素在父主題 (在實際上可能是基於重複的默認主題,根據您的假設) 的主題中被解決),需要不同的元素在兒童主題中被解決。

兒童主題的美妙之處在於,兒童主題本身就清楚地看到了兒童主題與父母主題之間的唯一區別。想知道父母與孩子主題有什麼不同?孩子主題本身就是這些差異的總和。需要改變孩子主題的東西嗎?您只需要查看幾個規則和功能,而不是涉及整個主題的代碼。

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。