雖然現在免費的wordpress主題滿天飛,但做為一個geek你有沒有考慮過寫一個屬于自己的wordpress主題呢。這篇文章就教你如何從最基礎開始做一個wordpress主題。
主題的文件結構:
寫之前首先要了解一下Wordpress主題的結構。
WordPress主題放在wp-content/themes/下,做為一個獨立的文件夾存在。文件夾的名字隨意,但不要使用純數字,否則會導致主題無法在主題列表中正常顯示。主題文件夾中包含該主題需要的所有樣式文件、模板文件、函數文件、JavaScript腳本 文件、靜態文件等。
一個最小的主題通常由三類文件組成:
樣式表文件 style.css
函數文件functions.php(可選)
模板文件
注意,這些文件的名稱是固定的,不能隨意更改。
下面我們就來分別看一看每個文件有什么作用。
樣式文件:
style.css是一個主題的必選文件,因為其中包含了對這個主題的描述信息。一個style.css的頭部信息如下:
/*?Theme?Name:?主題名稱(必選) Theme?URI:?主題的地址,可選,格式為一個URL,如http://wordpress.org/ Description:?對主題的描述,會顯示在主題列表中。 Author:?作者? Version:?版本,如1.0?Tags:?給主題加的一些標簽,可選,一般是為了讓用戶更方便搜索到這個主題。? */
需要注意的是,每個主題都應該有一個自己的主題名稱(Theme Name),以便于在主題列表中可以區分。
函數文件:
除非你建立一個純靜態的主題,否則你一定會調用到Wordpress的API。這些主題所要用到的函數就寫在functions.php文件中。你可以以Wordpress自帶主題中的functions文件做為參考。
模板文件:
模板文件不是一個文件,而是一類php文件。它們決定了你每個頁面的最終顯示效果。模板文件遵循一定的命名規則,下面是每個模板的名稱和用途。
模板文件說明:
index.php
主模板。如果你的主題使用自己的模板,index.php 是必須要有的。
comments.php
評論模板.
front-page.php
首頁模板,僅用于開啟靜態首頁時。
home.php
主頁模板,默認的首頁。如果你開啟了靜態首頁這是展現最新的文章的模板頁面。
single.php
單獨頁面模板。顯示單獨的一篇文章時被調用。對于這個以及其他的請求模板,如果模板不存在會使用 index.php。
single-.php
自定義單獨頁面模板。例如,single-books.php 展示自定義文章類型為books的文章. 如果文章類型未被設置則使用index.php。
page.php
頁面模板,獨立頁面調用。
category.php
分類模板,分類頁面調用。
tag.php
標簽模板,標簽頁面調用。
taxonomy.php
術語模板,請求自定義分類法的術語時使用。
author.php
作者模板,作者頁面調用。
date.php
日期/時間模板,按時間查詢時使用的模板。
archive.php
存檔模板,查詢分類,作者或日期時使用的模板。需要注意的是,該模板將會分別被category.php, author.php, date.php所覆蓋(如果存在的話)。
search.php
搜索結果模板,顯示搜索結果時使用的模板。
attachment.php
附件模板,查看單個附件時使用的模板。
image.php
圖片附件模板,當在wordpress中查看單個圖片時將調用此模板,如果不存在此模板,則調用attachment.php 模板。
404.php
404 錯誤頁面模板,當WordPress無法查找到匹配查詢的日志或頁面時,使用404.php文件。
沒有特別的數量要求,你甚至可以僅僅使用一個文件index.php作為模板文件,所有 頁面都會使用這個模板,多數情況下,你會有多個模板來顯示不同的頁面。具體模板的調用順序可以參考下圖:
一個最簡單的主題:
知道了上面這些之后,我們來看一個最簡單主題例子。首先,這個主題包含下面幾個文件:
style.css
index.php
single.php
header.php
sidebar.php
footer.php
style.css的內容上面已經提及,你只需要補充自己需要的css就可以了。
header.php, sidebar.php, footer.php分類是頁面的頂部、邊欄、尾部。文章采用single.php作用模板,其它頁面(如主頁)會采用index.php做模板。
index.php的內容為:
<?php get_header(); ?>? <?php get_sidebar(); ?> ?<?php get_footer(); ?>
文章頁面模板single.php為:
<?php get_header(); ?> ?<h1><?php the_title(); ?></h1> ?<div><?php the_content(); ?></div> ?<?php get_sidebar(); ?>? <?php get_footer(); ?>
這樣,我們一個最簡單的模板就完成了。剩下的就是你自己根據你的需要為其添加樣式和內容了。另外在模板中所有你可能用到的Wordpress函數在這里都可以找到:Wordpress Function Reference。
更多wordpress相關技術文章,請訪問wordpress教程欄目進行學習!