中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

關(guān)于WordPress模板層次

2019-12-03    來(lái)源:愛(ài)站科技

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

當(dāng)我們?cè)诙ㄖ芖ordPress模板之前必須要知道WordPress的模板層次,只有了解WordPress的模板層次我們才能合理利用資源,那么我們現(xiàn)在就去看看關(guān)于WordPress模板層次的內(nèi)容。

萬(wàn)能的index.php

通過(guò)“WordPress主題構(gòu)成”這篇文章,我們已知道一個(gè)最簡(jiǎn)單的WordPress主題只需要 style.css 和 index.php 文件即可。這代表著 index.php 可以是任何一個(gè)頁(yè)面的模板,無(wú)論是首頁(yè),還是文章頁(yè),或是分類頁(yè),再或者是搜索結(jié)果頁(yè)面,它都能完美勝任。

也就是說(shuō),當(dāng)對(duì)應(yīng)的模板不存在時(shí),?index.php 將是WordPress最后的底牌。

模板加載順序

下面讓我們來(lái)了解一下WordPress都是怎么加載模板的

首頁(yè)

  1. 首先WordPress會(huì)先檢查是否有靜態(tài)首頁(yè),如果有靜態(tài)首頁(yè),就會(huì)加載這個(gè)頁(yè)面內(nèi)容并通過(guò) front-page.php 模板文件展示,如果沒(méi)有這個(gè)模板文件,就會(huì)通過(guò)頁(yè)面模板展示如果沒(méi)有靜態(tài)首頁(yè),就會(huì)加載 home.php ?最新文章模板 如果沒(méi)有 home.php 則加載?index.php模板

文章頁(yè)

首先被考慮的是?single-{post_type}.php 這樣一個(gè)模板文件(如文章類型是 product 那么對(duì)應(yīng)的文件名就是 single-product.php )如果找不到,那么就會(huì)加載?single.php 模板如果連?single.php 模板都沒(méi)有則加載?index.php 模板。

頁(yè)面

首先被考慮的是自定義模板,也就是編輯頁(yè)面時(shí)所選擇的模板如果沒(méi)有自定義模板,則查找?page-{slug}.php 別名模板(如頁(yè)面別名是 about 對(duì)應(yīng)的文件名就是 page-about.php )如果別名模板也沒(méi)有就查找?page-{id}.php ID模板(如頁(yè)面ID是 2?對(duì)應(yīng)的文件名就是 page-2.php )如果ID模板也沒(méi)有那就是 page.php 模板了如果連 page.php 模板都沒(méi)有則加載?index.php 模板

分類頁(yè)

首先被考慮的是?category-{slug}.php 別名模板(如分類別名是 news 對(duì)應(yīng)的文件名就是 category-news.php )如果沒(méi)有別名模板則查找?category-{id}.php ID模板(如分類ID是 1 對(duì)應(yīng)的文件名就是 category-1.php )如果ID模板也沒(méi)有那就是 category.php 分類模板了如果 category.php 分類模板也沒(méi)有則加載 archive.php?通用歸檔模板如果連 archive.php?通用歸檔模板都沒(méi)有則加載?index.php 模板

標(biāo)簽頁(yè)

標(biāo)簽頁(yè)模板加載順序和分類頁(yè)一樣,只不過(guò)前綴不過(guò) category 而是?tag (如?tag-{slug}.php)。

自定義分類法

有時(shí)候除了WordPress默認(rèn)的分類目錄和標(biāo)簽我們還需要其他的分類方法,這時(shí)候我們就會(huì)注冊(cè)一個(gè)新的分類法,那么在此之前知道分類法的模板加載順序也是十分必要的。以下說(shuō)明假設(shè)自定義分類法是 people 這個(gè)名字:

分類法分類頁(yè)首先被考慮的是?taxonomy-{taxonomy}-{term}.php 別名模板(如分類別名 teacher 對(duì)應(yīng)的文件名就是?taxonomy-people-teacher.php?)如果沒(méi)有別名模板,則加載該分類法歸檔頁(yè)(如 taxonomy-people.php )如果分類法歸檔頁(yè)模板也沒(méi)有則加載 archive.php?通用歸檔模板如果連 archive.php?通用歸檔模板都沒(méi)有則加載?index.php 模板

自定義文章類型

除了自定義分類法,有時(shí)候我們也需要自定義文章類型

自定義文章類型歸檔頁(yè)首先被考慮的是?archive-{post_type}.php 別名模板(如文章類型是 product 那么對(duì)應(yīng)的文件名就是?archive-product.php )如果沒(méi)有別名模板則加載 archive.php?通用歸檔模板如果連 archive.php?通用歸檔模板都沒(méi)有則加載?index.php 模板

作者歸檔頁(yè)

首先被考慮的是?author-{nicename}.php 別名模板(如作者用戶名是 steven 那么對(duì)應(yīng)的文件名就是 author-steven.php )如果沒(méi)有別名模板則加載?author-{id}.php ID模板(如作者ID是 1 對(duì)應(yīng)的文件名就是 author-1.php )如果ID模板沒(méi)有則加載 author.php?通用作者模板如果通用作者模板也沒(méi)有則加載 archive.php?通用歸檔模板如果連 archive.php?通用歸檔模板都沒(méi)有則加載?index.php模板

日期歸檔頁(yè)

首先被考慮的是 date.php 日期歸檔模板如果日期歸檔模板沒(méi)有則加載 archive.php?通用歸檔模板如果連 archive.php?通用歸檔模板都沒(méi)有則加載?index.php 模板

搜索結(jié)果頁(yè)

  1. 首先被考慮的是 search.php?搜索結(jié)果模板如果沒(méi)有搜索結(jié)果模板則加載?index.php模板

附件頁(yè)

首先會(huì)按MIME類型加載模板(如 image.php,?video.php,?application.php,而?text/plain?類型則按順序嘗試加載?text.php,?plain.php,?text_plain.php 這三個(gè)文件。如果沒(méi)有對(duì)應(yīng)的MIME類型模板則?attachment.php 附件模板(如沒(méi)有 attachment.php 則加載 single-attachment.php )如果沒(méi)有附件模板則加載 single.php 文章頁(yè)模板如果連 single.php 文章頁(yè)模板都沒(méi)有則加載?index.php 模板

模板層次圖

上面用文字詳細(xì)講述了WordPress模板的加載順序,盡管詳細(xì),但還不如一張信息圖更為直觀,以下就是WordPress的模板層次(2)結(jié)構(gòu)圖。

使用鉤子修改模板

在某些使用場(chǎng)景(如插件),我們并不能直接修改模板文件,這時(shí)候我們可以使用鉤子來(lái)實(shí)現(xiàn)修改模板文件,鉤子名稱是?{$type}_template 這樣的格式,以下是對(duì)應(yīng)的完整的鉤子名稱列表:

index_template

404_template

archive_template

author_template

category_template

tag_template

taxonomy_template

date_template

home_template

front_page_template

page_template

paged_template

search_template

single_template

text_template, plain_template, text_plain_template (all mime types)

attachment_template

comments_popup

以下是一個(gè)使用例子(讓頁(yè)面加載?single.php 文章頁(yè)的模板):

function page_template_filter( $templates=''){

$templates=locate_template("single.php",false);

return $templates;

}

add_filter('page_template','page_template_filter');

模板頁(yè)面判斷

一般情況下,在一個(gè)特定的模板中我們能清楚知道應(yīng)該怎么輸出特定的樣式和內(nèi)容,但在一些通用模板中(如 header.php )我們想要知道用戶當(dāng)前訪問(wèn)的是哪個(gè)頁(yè)面模板就需要借助WordPress內(nèi)置的條件判斷函數(shù)了,這些函數(shù)可以幫助我們判斷當(dāng)前是什么頁(yè)面以方便加載不同的模板內(nèi)容,如 is_home() 則是判斷首頁(yè)的條件標(biāo)簽,is_single() 則是判斷文章頁(yè)的條件標(biāo)簽,等等。

上文就是關(guān)于WordPress模板層次的介紹,其實(shí)在WordPress的世界里還有有很多有意思的東西,打架只需要找到最適合的就好。

標(biāo)簽: Wordpress 模板層次

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:WordPress打開(kāi)速度很慢怎么辦

下一篇:WordPress博客防黑技巧