WordPress模板層次02:模板層次結構和原理
模板層次結構頁面
首先,開啟一個網站 wphierarchy.com,它是介紹關於模板層次結構的頁面。它可以讓你看到整個WordPress模板層次結構。這個結構的核心:簡單來說就是備胎的思想。
在這裡,我隨意點選一個模板檔案:
就可以到達WordPress官方文件關於這個模板檔案的詳細講解頁面。
整個模板層次結構流程
以WordPress網站上的Singular Page為例。它是單一頁面的意思。
首先,當你編輯釋出一個頁面的時候,WordPress將會弄清楚:它是一個單獨的頁面(Single Post Page),還是靜態頁面(Static Page)?
假設這是一個靜態頁面(Static Page)。WordPress又會判斷:它使用的是自定義模板(Custom Template),
還是預設模板(Default Template)?
- 假設是自定義模板(Custom Template),WordPress就會查詢:自定義格式(Custom.php)的模板檔案 。
- 假設是預設模板(Default Template),WordPress就會查詢:固定格式(page-slug.php/page-id.php)的模板檔案 。
那麼,如果以上這些自定義的頁面都沒有在主題中給定,WordPress將會尋找備份的page.php模板檔案。
如果page.php還是沒有給出的話,那麼關於這個頁面,WordPress將會預設使用index.php作為模板。
備胎的思想
整個流程體現出了一種備胎的思想。也就是說,WordPress會首先考慮的是初戀:如果沒有找到初戀(PageTemplate),就找備胎1(Page.php)。最後是最通用的備胎(index.php)。
因此,如果主題中,沒有這些橙色的或自定義的特定模板檔案,那麼WordPress將預設使用index.php檔案來斷後。
Archive模板層次結構
Archive模板層次結構也是一樣的道理:
You must be logged in to view the hidden contents.
比方說,我們有一個分類頁面(Archive Page),按日期分類(Date Archive)。而且我們想要分年,月,日。那麼WordPress會首先查詢一個名為date.php的模板。如果這個date.php不存在,那麼WordPress將會查詢一個名為archive.php的模板。
archive.php不存在的話,那麼最終它將回到使用最終的備胎: **index.php **模板。
在這個流程中,可以再次看到WordPress模板備胎的思想。
原理總結
所以,總的來說,如果沒有date.php或archive.php,我們也沒有任何自定義頁面模板(Page template),那麼,不管是分類頁面(Archive Page)還是單一頁面(Singular Page)都將預設使用 index.php 模板。
實際上,設計一個可以適用於所有型別頁面的單一模板是非常困難的,我們通常會使用archive.php,single.php,page.php,home.php這些模板檔案,以及其他一些更具體的自定義型別模板,而不會到index.php這一層。
相關文章
- WordPress模板層次15:歸檔模板
- WordPress模板層次01:模板檔案
- WordPress主題模板層次和常用模板函式函式
- WordPress模板層次08:footer.phpPHP
- WordPress模板層次17:404.phpPHP
- WordPress模板層次06:index.phpIndexPHP
- WordPress模板層次16:搜尋模板search.phpPHP
- WordPress模板層次03:模板檔案中常見程式碼
- WordPress模板層次09:sidebar.phpIDEPHP
- WordPress模板層次13:comments.phpPHP
- WordPress模板層次07:header.phpHeaderPHP
- WordPress模板層次12:single.phpPHP
- WordPress模板層次05:style.css樣式表CSS
- WordPress模板層次04:建立一個示例主題網站網站
- dump index 的層次結構Index
- 繪製層次結構圖
- Django模板層Django
- Django 模板層Django
- MFC9.0層次結構圖
- 儲存器的層次結構
- 深入理解 Flutter 框架層次結構Flutter框架
- 六、層次結構儲存系統
- LB 負載均衡的層次結構負載
- django的模板層Django
- JDK安裝方法、使用方法和層次結構JDK
- 層次式架構案例架構
- 易優CMS模板標籤if條件判斷多層次判斷
- 談一談資料域層次結構
- iOS10 UI教程管理層次結構iOSUI
- Tomcat伺服器層次結構研究Tomcat伺服器
- cad.net開發小結——層次結構
- 層次結構資料的資料庫儲存和使用資料庫
- iOS10 UI教程層次結構的事件iOSUI事件
- 計算機系統的層次結構(計算機組成原理5)計算機
- 關於Spring Cloud的特性與層次結構SpringCloud
- SQL Server 2008的加密層次結構SQLServer加密
- 深入學習和理解Django模板層:構建動態頁面Django
- 商業智慧的三個層次,你在哪個層次?