跳至內容
參考資料

WordPress 區塊佈景主題範本階層

完整的區塊佈景主題(FSE)範本階層:針對每一種請求類型,列出 WordPress 依序尋找的範本清單,從最明確的開始,最後回退到 index.html。這是區塊時代版本的經典範本階層圖。

針對每個請求,WordPress 會依序尋找這些範本——最明確的優先——並在你佈景主題的 /templates 資料夾中找到的第一個範本處停止。這條鏈結始終以 index.html 結尾。

首頁

網站的首頁,無論設定為顯示最新文章或靜態頁面皆是。

  1. front-page.html
  2. home.html
  3. index.html

無論「設定 → 閱讀」如何選擇,front-page.html 一律優先套用。若首頁是靜態頁面且沒有 front-page.html,則會落到靜態頁面的樣板鏈,而不是 home.html。

文章列表頁

列出最新文章的頁面(即「設定 → 閱讀」中的「文章頁面」)。

  1. home.html
  2. index.html

單篇文章

單一篇部落格文章。

  1. single-post-{slug}.html
  2. single-post.html
  3. single.html
  4. singular.html
  5. index.html

單一自訂內容類型

自訂內容類型的單一項目(例如一本「書籍」)。

  1. single-{post-type}-{slug}.html
  2. single-{post-type}.html
  3. single.html
  4. singular.html
  5. index.html

以代稱為「dune」的「book」內容類型為例:先找 single-book-dune.html,接著 single-book.html,最後 single.html。

靜態頁面

一般的 WordPress 頁面。

  1. page-{slug}.html
  2. page-{id}.html
  3. page.html
  4. singular.html
  5. index.html

使用自訂樣板的頁面

在編輯器的「樣板」面板中指定了自訂樣板的頁面。

  1. {custom-template}.html
  2. page-{slug}.html
  3. page-{id}.html
  4. page.html
  5. singular.html
  6. index.html

自訂樣板在 theme.json 的 customTemplates 陣列中宣告,並存放於 /templates。所指定的樣板會優先於整條頁面樣板鏈。

分類彙整

列出某個分類底下所有文章的彙整頁。

  1. category-{slug}.html
  2. category-{id}.html
  3. category.html
  4. archive.html
  5. index.html

標籤彙整

列出帶有某個標籤之文章的彙整頁。

  1. tag-{slug}.html
  2. tag-{id}.html
  3. tag.html
  4. archive.html
  5. index.html

自訂分類法彙整

自訂分類法中某個項目的彙整頁。

  1. taxonomy-{taxonomy}-{term}.html
  2. taxonomy-{taxonomy}.html
  3. taxonomy.html
  4. archive.html
  5. index.html

作者彙整

某位作者所有文章的彙整頁。

  1. author-{nicename}.html
  2. author-{id}.html
  3. author.html
  4. archive.html
  5. index.html

日期彙整

依年 / 月 / 日的彙整頁。

  1. date.html
  2. archive.html
  3. index.html

內容類型彙整

已設定 has_archive 的自訂內容類型的彙整索引頁。

  1. archive-{post-type}.html
  2. archive.html
  3. index.html

搜尋結果

網站搜尋的結果頁面。

  1. search.html
  2. index.html

404(找不到頁面)

當沒有內容符合該網址時顯示。

  1. 404.html
  2. index.html

附件頁面

單一媒體附件的頁面。

  1. attachment.html
  2. single.html
  3. singular.html
  4. index.html

許多網站會完全停用附件頁面(因為內容過於單薄)。若你選擇保留,這就是它的樣板鏈。

隱私權政策頁面

在「設定」中指定為網站隱私權政策的頁面。

  1. page-privacy-policy.html
  2. privacy-policy.html
  3. page.html
  4. singular.html
  5. 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,而不是靠任何檔頭旗標。
  • 你可以在網站編輯器(外觀 → 編輯器)中編輯上述任何一個樣板,並將變更儲存到資料庫,這些變更接著會「覆蓋」佈景主題的檔案,直到你清除該自訂內容為止。這常讓正在排查「為什麼我改了樣板卻毫無反應」的人大感意外。