問題描述
我正在建立一個主題,作為我正在工作的公司的其他網站的例子。在另一個項目中,我們使用了 「混合父母主題」,並且很容易構建,但很難維護網站。
我更喜歡 Starter Theme 方法,另一位開發人員複製主題並從中創建。 Parent-> Child 給開發人員帶來了太多的自由,使代碼亂七八糟。例如,我不知道是否在孩子或父母身上調用了某些東西。
我想聽聽你的意見:
-
父母主題更好?
-
入門主題更好?
-
他們每個人的利弊是什麼?
謝謝。
最佳解決方案
我完全同意 Rarst 。我只想添加一些小東西。
注意:我區分父母主題和框架。在我的回答中,我認為像 TwentyEleven 這樣的父主題,它主要是為特定的網站創建的,而不是框架。
入門主題:
優點
-
易於在 HTML 級別進行自定義。我的意思是打開
<div>,一個特定元素的自定義 CSS 類。為個人博客創建一個非常小的主題是一個很好的方式,您不需要父主題提供的許多東西 (或至少如果您使用父主題/框架,則必須鈎住刪除它們) 。您還可以回應 HTML 的特殊部分,如iframe,引用另一個網站或只是一個’Hello text’ 比使用父主題更容易。 -
不需要從父主題複製模板文件,只是為了改變小事情。
-
不需要學習像鈎子 Map,自定義語法,自定義函數等新的東西。這些東西是開發人員喜歡的,但不是所有的用户。
缺點
-
因為它是一個開始,你必須做許多事情來完成你的主題:CSS,自定義模板等。如果你太懶,你可能不想這樣做!
家長主題:
優點
-
有一個完整的設計,您可以通過更改
style.css中的小線,輕鬆調整,如更改顏色,字體大小等。 -
是一個完整的主題,這意味着你可以馬上就可以,而不必擔心像評論模板,單頁模板等等。
-
有人為你修造了!
缺點
-
父主題如果大多符合您的要求,應該考慮一下,所以您可以儘可能少調整。否則這是一場噩夢
-
定製的能力不算太高。我不是指您可以在框架中看到的鈎子系統 (見下面的框架) 。如果要強烈自定義它,您必須重寫大多數模板文件 – 這意味着您正在重新創建主題,而不是使用父主題的目的。
框架:
優點
-
一切都可用:框架通常作為一個 all-in-one 解決方案,因此它具有很好的創建任何類型的網站的能力。你需要自定義標誌?選色器?拖曳下降?主題佈局?你已經有了他們在你的手中。
-
如果您熟悉它,可以更快地構建網站
-
有一個完整的鈎子系統,允許用户鈎在很多地方來改變框架提供的許多事情
-
高水平的定製:不僅在鈎子系統中,而且像 Catalyst,Headway 這樣的許多框架使您能夠自定義幾乎所有的元素,而不用 CSS 或鈎子。
缺點
-
用户必須學習框架 (掛鈎系統,熟悉其功能,設置,甚至新術語) 才能有效地使用它。我認為這是框架的最大缺點,因為 WP 已經有很多東西需要學習,並不是所有的用户都想學習一個新的東西,只是為了更好地使用 WP 。這些東西是開發人員喜歡的,但不是所有的用户。用户只是使用,不學習和定製。
-
冗餘代碼:框架的某些部分與 WP 功能重合,導致重複。示例可以是
genesis_meta()(不需要,因為我們有wp_head) 。 -
性能:因為框架有一切需要=> 它必須加載所有您可能根本不使用的管理員/前端所需的文件。對於這一點,我更喜歡 Hybrid Core 加載其文件 (通過使用
require_if_theme_supports功能) -
默認的外觀通常是最小和不好的。我們必須做很多工作,使設計完成。如果您使用的是起始主題,則使用鈎子而不是起始主題中的自定義模板。
-
框架有自己的哲學,導致不同的方式來構建框架=> 導致許多框架=> 我們不知道哪一個是最適合我們的 (特別是當它們是溢價時) 。這不是太好,因為如上所述,框架對開發人員有好處,開發人員需要深入瞭解代碼,看看它是如何好的!如果框架是溢價的話,那個門就是看!
最後的事情:所有的起始主題& 父母主題& 框架可以用於任何網站,如果您可以輕鬆自定義以實現最終結果。所有情況都沒有一個解決方案。我們必須選擇哪一個可以幫助我們,也許這次起始主題是好的,但在另一個時間 – 一個框架。順便説一句,與所有人合作可以給我們很多經驗,幫助我們在許多情況下,不僅在創建主題時!
次佳解決方案
主題工作流平衡是幾個因素的結合:
-
代碼量,個人到站點
-
代碼量,站點之間共享
-
併入上游變化
這些都可以是重要的,而且每個都可能是不重要的。
父母主題模式滿足所有這些相當好,但不是很好。您可以清楚地分離共享和單獨的代碼,以及直接的上游更新 (如果使用第三方父主題) 。當任何要求比平常更大時,它開始分手 – 很多單獨的代碼或許多共享代碼在第三方父主題中不容易混合。
起始主題另一方面是非常專業的模特兒。它有利於個人網站,但不贊成上游更改和共享代碼。一旦你創建自己的主題,所有的負擔,移動代碼進出它是在你身上。
更新的趨勢是將框架分解為 plugin-like 組件,而不是完全運行父主題。如果你熟悉 Hybrid 作為父母主題,看看 Hybrid Core 。這種方法本質上是在父母/孩子之上的改進,上游更新更容易受到框架而不是整個主題的限制。
簡而言之 (在這裏有點主觀):
-
啓動器適合個人網站
-
父母/孩子適合多個網站,沒有太多的自定義
-
框架/父母/孩子可以適應任何事情和一切,但也更多地涉及開發
第三種解決方案
使用父主題的主要原因是允許更容易的更新 – 如果您只是直接使用主題並進行編輯,那麼如果原始主題被更新,則必須重新應用所做的任何更改 (或將原始的更改合併回到你修改過的主題) 。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。