国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
WordPress的模板層次

WordPress的模板層次

2015-01-26 10:52 來(lái)源:多夢(mèng)網(wǎng)絡(luò) 編輯:雪萍【糾錯(cuò)0人評(píng)論

A-A+

 

WordPress模板的定義非常方便,但是在定制模板之前,我們有必要知道WordPress的模板層次,了解WordPress是如何加載模板文件的,這將有利于開(kāi)發(fā)模板時(shí)合理利用資源及提高工作效率。

萬(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è)面模板展示
  2. 如果沒(méi)有靜態(tài)首頁(yè),就會(huì)加載 home.php  
  3. 最新文章模板 如果沒(méi)有 home.php 則加載 index.php模板

文章頁(yè)

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

頁(yè)面

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

分類頁(yè)

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

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

  1. 標(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è)名字:

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

自定義文章類型

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

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

作者歸檔頁(yè)

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

日期歸檔頁(yè)

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

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

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

附件頁(yè)

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

 

模板層次圖

上面用文字詳細(xì)講述了WordPress模板的加載順序,盡管詳細(xì),但還不如一張信息圖更為直觀,以下就是WordPress的模板層次結(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)簽,等等。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
wordpress工作原理
最適合做SEO的博客
WordPress 如何使用模板文件創(chuàng)建一個(gè)自定義頁(yè)面
實(shí)例講解如何在wordpress內(nèi)自定義文章類型 | 設(shè)計(jì)箱
wordpress 加載順序a
WordPress架構(gòu)簡(jiǎn)單剖析
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服