WordPress 區塊佈景主題範本階層
完整的區塊佈景主題(FSE)範本階層:針對每一種請求類型,列出 WordPress 依序尋找的範本清單,從最明確的開始,最後回退到 index.html。這是區塊時代版本的經典範本階層圖。
針對每個請求,WordPress 會依序尋找這些範本——最明確的優先——並在你佈景主題的 /templates 資料夾中找到的第一個範本處停止。這條鏈結始終以 index.html 結尾。
首頁
網站的首頁,無論設定為顯示最新文章或靜態頁面皆是。
- front-page.html
- home.html
- index.html
無論「設定 → 閱讀」如何選擇,front-page.html 一律優先套用。若首頁是靜態頁面且沒有 front-page.html,則會落到靜態頁面的樣板鏈,而不是 home.html。
文章列表頁
列出最新文章的頁面(即「設定 → 閱讀」中的「文章頁面」)。
- home.html
- index.html
單篇文章
單一篇部落格文章。
- single-post-{slug}.html
- single-post.html
- single.html
- singular.html
- index.html
單一自訂內容類型
自訂內容類型的單一項目(例如一本「書籍」)。
- single-{post-type}-{slug}.html
- single-{post-type}.html
- single.html
- singular.html
- index.html
以代稱為「dune」的「book」內容類型為例:先找 single-book-dune.html,接著 single-book.html,最後 single.html。
靜態頁面
一般的 WordPress 頁面。
- page-{slug}.html
- page-{id}.html
- page.html
- singular.html
- index.html
使用自訂樣板的頁面
在編輯器的「樣板」面板中指定了自訂樣板的頁面。
- {custom-template}.html
- page-{slug}.html
- page-{id}.html
- page.html
- singular.html
- index.html
自訂樣板在 theme.json 的 customTemplates 陣列中宣告,並存放於 /templates。所指定的樣板會優先於整條頁面樣板鏈。
分類彙整
列出某個分類底下所有文章的彙整頁。
- category-{slug}.html
- category-{id}.html
- category.html
- archive.html
- index.html
標籤彙整
列出帶有某個標籤之文章的彙整頁。
- tag-{slug}.html
- tag-{id}.html
- tag.html
- archive.html
- index.html
自訂分類法彙整
自訂分類法中某個項目的彙整頁。
- taxonomy-{taxonomy}-{term}.html
- taxonomy-{taxonomy}.html
- taxonomy.html
- archive.html
- index.html
作者彙整
某位作者所有文章的彙整頁。
- author-{nicename}.html
- author-{id}.html
- author.html
- archive.html
- index.html
日期彙整
依年 / 月 / 日的彙整頁。
- date.html
- archive.html
- index.html
內容類型彙整
已設定 has_archive 的自訂內容類型的彙整索引頁。
- archive-{post-type}.html
- archive.html
- index.html
搜尋結果
網站搜尋的結果頁面。
- search.html
- index.html
404(找不到頁面)
當沒有內容符合該網址時顯示。
- 404.html
- index.html
附件頁面
單一媒體附件的頁面。
- attachment.html
- single.html
- singular.html
- index.html
許多網站會完全停用附件頁面(因為內容過於單薄)。若你選擇保留,這就是它的樣板鏈。
隱私權政策頁面
在「設定」中指定為網站隱私權政策的頁面。
- page-privacy-policy.html
- privacy-policy.html
- page.html
- singular.html
- index.html
這與傳統(PHP)階層有何不同
- 樣板是位於 /templates 中的 .html 檔案,而非佈景主題根目錄下的 .php 檔案。沒有 single.php,只有 single.html。
- 可重複使用的區域(頁首、頁尾)是位於 /parts 中的樣板組件(template part),以 wp:template-part 區塊來引用,而不是 get_header() / get_footer() 這類 PHP 呼叫。
- 沒有 get_template_part() 樣板鏈,也沒有 get_header()/get_footer()。頁面組合是在 .html 檔案內以「樣板組件」(Template Part)區塊完成。
- index.html 是必要的。缺少 templates/index.html 的 block theme 並不是有效的 block theme,它是上述每一種路由的最終強制備援樣板。
- 佈景主題之所以被判定為 block theme,是取決於同時「存在」templates/index.html 與 theme.json,而不是靠任何檔頭旗標。
- 你可以在網站編輯器(外觀 → 編輯器)中編輯上述任何一個樣板,並將變更儲存到資料庫,這些變更接著會「覆蓋」佈景主題的檔案,直到你清除該自訂內容為止。這常讓正在排查「為什麼我改了樣板卻毫無反應」的人大感意外。