開始製做WordPress主題以前,首先得了解WordPress主題到底由哪些文件構成,你得清楚WordPress程序是怎樣與主題文件鏈接的。通常來說一個主題至少須要包含兩個文件:index.php和style.css。 php
細的來講,可能存在的文件有: css
主頁: app
- home.php
- index.php(這個算是萬能的了)
文章頁: ide
- single-{post_type}.php – 若是文章類型是videos(即視頻),WordPress就會去查找single-videos.php(WordPress 3.0及以上版本支持)
- single.php
- index.php
頁面: 函數
- xxx.php(文件名隨便),自定義頁面模板 – 在WordPress後臺建立頁面的時候,右側邊欄能夠選擇頁面的自定義模板
- page-{slug}.php – 若是頁面的縮略名是news,WordPress將會查找 page-news.php(WordPress 2.9及以上版本支持)
- page-{id}.php – 若是頁面ID是6,WordPress將會查找page-6.php
- page.php
- index.php
分類模板: post
- category-{slug}.php – 若是分類的縮略名爲news,WordPress將會查找category-news.php(WordPress 2.9及以上版本支持)
- archive-{post_type}.php--若是你的主題有自定義文章類型,好比按照官方網站教程,註冊了一個名爲book的文章類型,那麼它的歸檔頁面模板就是category-book.php,若是沒有這個文件,它是不會使用其它文件來代替的,將會直奔404
- taxonomy-{taxonomy_slug}.php-這是自定義分類法的分類頁,好比上面你註冊了一個book的文章類型,而後你註冊一個分類法author,它的別名是authors,以便讓文章按做者分類。那麼這個做者分類頁的模板文件就是taxonomy-authors.php
- category-{id}.php -若是分類ID爲6,WordPress將會查找category-6.php
- category.php
- archive.php
- index.php
標籤 網站
- tag-{slug}.php – 若是標籤縮略名爲sometag,WordPress將會查找tag-sometag.php
- tag-{id}.php – 若是標籤ID爲6,WordPress將會查找tag-6.php(WordPress 2.9及以上版本支持)
- tag.php
- archive.php
- index.php
做者: 視頻
- author-{nicename}.php – 若是做者的暱稱爲rami,WordPress將會查找author-rami.php(WordPress 3.0及以上版本支持)
- author-{id}.php – 若是做者ID爲6,WordPress將會查找author-6.php(WordPress 3.0及以上版本支持)
- author.php
- archive.php
- index.php
日期頁面: 教程
- date.php
- archive.php
- index.php
搜索結果: 博客
- search.php
- index.php
404 (未找到)頁面
- 404.php
- index.php
附件頁面:
- MIME_type.php – 能夠是任何MIME類型 (image.php, video.php, audio.php, application.php 或者其餘).
- attachment.php
- single.php
- index.php
函數
- functions.php
評論模板
關於上面的文件層次結構
上面除了自定義文章類型,和自定義分類法須要固定的模板來顯示對應內容,其它的,若是缺乏對應文件,能夠用其它文件代替。以主頁爲例,下面有2個文件home.php和index.php,WordPress程序會從你的主題文件夾中依次查找這兩個文件,若是找到home.php,則使用home.php做爲博客首頁模板,即便你的主題文件夾中有index.php;若是home.php未找到,則使用index.php做爲首頁模板;若是home.php和index.php都找不到,你的主題將不會被WordPress識別,等於廢物。
對於上面這麼多文件,不必定所有備齊,須要什麼模板採用到,對於複雜一點的主題,一般會有不少php函數,爲了有清晰的層次結構,做者通常會將代碼分裝在其它的php文件中,能夠在functions.php使用include_once等函數包含文件