問題描述
在 this post on wordpress.stackexchange.com 中,我詢問是否使用了 「二十年」 主題演示的 get_template_part(),是推薦的最佳做法。我得到的普遍共識是,這不一定是所有情況下的最佳做法。
那麼這個相關的問題是:你可以提供一個例子,其中使用 get_template_part() 將是推薦的方法,簡單地定義單獨的 template.php 檔案?
例如,我可以定義 archive.php,single.php 和 page.php; 或者我可以定義 loop-archive.php,loop-single.php 和 loop-page.php 。
在什麼情況下,最好使用 get_template_part(‘loop’,’single’) 並利用 loop-single.php 與簡單定義 single.php?
最佳解決方法
推薦使用 get_template_part 的方法將包括在所有模板中經常重複的程式碼位。喜歡,如果您在迴圈中定義了要包含在 archive.php,search.php,single.php 等中的條件。
它還允許子主題覆蓋該檔案,幷包含其他更具體的檔案。例如,如果您使用 get_template_part( 'loop', 'single' ),並且您的主題只有一個名為 loop.php 的檔案,則子主題可能包含一個名為 loop-single.php 的檔案,該檔案將覆蓋您的 loop.php 。
它基本上是除了標題,側邊欄或頁尾之外的模板檔案的自定義包含標籤。
次佳解決方法
我不覺得沒有一個有效的理由不要使用 get_template 部分。在它存在之前,WordPress 主題充滿了重複的程式碼,並且非常 time-consuming +令人困惑,做出更大的修改。擁有一個永遠用於顯示帖子的迴圈檔案是對於兒童主題和那些希望使用”fork” 主題的人來說都是一個天堂。如果您檢視 Twenty Eleven 主題的程式碼 (目前正在開發中),您將看到模板部分已經擴充套件到帖子格式。您還將注意到”The Loop” 已從模板中刪除並放置在呼叫模板中。我認為這是使用模板部件釋出內容的最佳方式,比二十十更靈活。
你知道其他模板與 get_template_part() 幾乎相同嗎?我寫的文章解釋如何:http://wordpress.mfields.org/2011/adding-context-to-template-parts/
父母主題越靈越越好!
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。