模板文件是 WordPress 網站的基礎,它們就像拼圖一樣生成你的網頁。有些模板 (例如頭部和底部模板文件) 應用在所有的網頁上,還有一些模板只會在特定條件下才會用到。

傳統的網頁包含兩個文件:

  • XHTML 頁面 構建網頁的框架和內容;
  • CSS 樣式表 決定網頁的風格表現。

在 WordPress 中 (X)HTML 結構和 CSS 樣式表是固定的,但是網頁中的內容是由各個模板文件在後台生成的。主題文件和樣式表存儲在一起就成為了一個 WordPress 主題。

WordPress 的頁面結構

一個簡單的 WordPress 網頁由三個部分組成:頭部結構、內容結構、底部結構。這些結構都是由你當前使用的 WordPress 主題模板文件生成的。

  • 頭部包含你的 XHTML 網頁頂部的所有信息,即<head> 標籤,還有例如<doctype><meta> 標籤和指向樣式表的鏈接。它還包含了<body> 標籤和你博客頭部中可見的部分。 (通常包括您網站的名稱,也可以包括導航菜單、 logo 、網站介紹等等信息) 。
  • 底部一般是在你的頁面最下方,包含了一些相關信息,像通往其它頁面的鏈接或者你網站的分類導航菜單,版權和聯繫方式等其它信息。

WordPress 基本模板文件

一個 WordPress 主題是從位於你的主題所在路徑裏的 index.php 模板文件開始的。這個文件有兩個主要功能:

  • 包含或者調用其它模板文件;
  • 包含 WordPress 主循環以從數據庫獲取信息 (日誌、頁面、分類等等信息) 。

在我們這個簡單的頁面結構裏,我們只需要包含兩個額外的模板文件:頭部和底部,即 header.php 和 footer.php 。調用它們的模板標籤看上去像這樣:

<?php get_header(); ?>


<?php get_footer(); ?>

為了顯示你博客的日誌和頁面 (以及定義如何顯示它們),你的 index.php 文件必須在頭部與底部調用之間運行 WordPress 主循環。

更加複雜的頁面結構

許多 WordPress 主題包含一個或幾個側邊欄以包含導航功能和關於你網站的更多信息。側邊欄是 sidebar.php 模板文件生成的。可以用這個模板標籤將它包含進你的 index.php 模板文件:

<?php get_sidebar(); ?>

肉在哪裏?

  這裏請注意,我們沒有使用模板標籤來獲取網頁的內容,那是因為內容是在 index.php 模板文件中的 WordPress 主循環中生成的。

  同時也請注意,主題的樣式表決定了頭部、底部、側邊欄和內容部分在用户瀏覽器上顯示的樣子和位置。更多的關於 WordPress 主題和網頁設計的信息請參見博客設計與佈局.

模板文件中的模板文件

你已經看到了 WordPress 是怎樣在 index.php 模板文件中包含標準模板文件 (頭部、底部和側邊欄) 的。你也可以在任何模板文件中包含其它的模板文件。

  例如,sidebar.php 中可以包含一個生成搜索欄的模板文件 searchform.php 。因為這不是一個 WordPress 的標準模板文件,所以代碼有些不同:

<?php include (TEMPLATEPATH . '/searchform.php'); ?>

 為了包含文件,我們可以使用 PHP 命令 include 這個命令需要知道目標文件的具體路徑 (TEMPLATEPATH 是一個 WordPress 中的可以指向主題模板文件路徑的特殊變量) 。

多數 WordPress 主題包括各種包含其他模板的模板文件,以生成網站上的網頁。下面這些模板文件就是一個 WordPress 網站的主模板 (index.php) 可以包含的典型文件:

  • header.php
  • theloop.php(內容)
  • wp-comments.php
  • sidebar.php
  • searchform.php
  • footer.php

特殊的模板文件

  WordPress 網站的網頁有兩種核心頁面模式。單獨日誌模式用來顯示一個單獨的日誌。多日誌模式用來顯示多個日誌或日誌摘要,這種模式同樣適用於分類存檔、日期存檔、作者存檔和 (通常情況下) 你博客主頁的正常模式。你可以使用 index.php 模板文件來生成所有這些模式或是依靠 WordPress 的模板分級模式根據不同的情況來選擇不同的模板文件。

  WordPress 模板分級模式解決了以下問題:

WordPress 使用哪個模板文件顯示特定類型的頁面?

  WordPress 會根據標準名稱自動識別某些特定模板文件,並使用它們顯示特定的網頁。例如,當用户點擊日誌標題的時候,WordPress 會認為用户希望在單獨日誌頁面上打開文檔。於是 WordPress 的模板分級模式會優先使用 single.php 模板文件生成頁面 (如果你的主題裏有 single.php 的話),而不是使用 index.php 模板文件生成。同樣,如果用户點擊了特別分類的鏈接,WordPress 將使用 category.php 模板文件來顯示,如果這個模板文件不存在,WordPress 將尋找 archive.php 模板文件,如果這個模板文件也不存在,WordPress 將使用主模板 index.php 來顯示頁面。你甚至可以使用特殊的模板文件來顯示特殊的分類 (更多信息請參見分類模板) 。

模板文件技巧

這裏有一些創建 WordPress 模板文件的技巧:

跟蹤開始標籤和結束標籤
模板文件包含了 XHTML 標籤和 CSS 引用。 HTML 元素和 CSS 引用貫穿於模板文件,從一個文件開始,在另一個文件結束。例如,html 和 bodyHTML 元素通常開始於 header.php 文件,結束於 footer.php 文件。許多 WordPress 主題使用 HTML 的 div 元素,它可以跨越許多個文件。例如,內容頁的主 div 可能開始於 header.php 文件,而結束於 index.php 文件或 single.php 文件。 如果你在開發、設計或修改主題,跟蹤 HTML 元素從哪裏開始到哪裏結束,這會是很複雜的事情。使用評論在模板文件中對大量標籤的開始和結束進行標註,於是你可以跟蹤不同 div 的不同結束部分。
在不同的視圖下測試模板文件
如果你對評論、側邊欄、搜索欄或是其它模板文件進行了改動,請確保使用不同的網頁視圖測試這些模板文件 (單篇日誌、不同類型的存檔和頁面) 。
標註主題變動
如果你是為公開發行設計主題,要記住那些下載你的主題的人可能會想要為他們自己的應用而稍微修改一下主題。因此,在模板文件中修改了的地方留下筆記,將是非常有幫助的。在主題的主樣式文件中加上評論也是一個好主意。 (例如在你的 header.php 文件或 HTML 標籤中) 。
在你身後關閉標籤之門
如果你在一個模板文件中開始了一個 HTML 標籤或者 div ,要確保你在另一個模板文件中關閉了這個標籤。 WordPress 論壇上有許多類似 「我的主題發生了什麼」 這樣的問題,這些問題基本上都產生於他們在頭部模板文件中開始了一個標籤,而在沒有關閉標籤的情況下刪除了底部模板文件。檢查你的標籤,確保它們都是閉合的。 (這裏有一個好辦法來確認這一切是否正確,那就是使用 HTML 校驗器來查看你的單獨和存檔頁面。)
模板中的 CSS 樣式
你可以在你的模板中的任何一個地方自由的使用你喜歡的 HTML 和 CSS 的標籤和樣式。然而,我們鼓勵你使用標準的 WordPress 主題結構 (參見網站結構 1.5) 。這可以使你的用户更加容易理解你的主題。

  但是,這個結構是可以被改變的。例如,你可以將搜索欄放置在你的頭部文件裏;也許你的設計中根本就不包含底部文件,那你就可以完全忽略它的存在。