在线观看免费av网站_青青草国产精品亚洲专区无码浪潮_最近最新免费中文字幕8_德国FREE性VIDEO极品,性爱深夜视频一区,亚洲综合另类小说色六月,中文字幕制服综合第一页

開源CMS網(wǎng)站搭建
平面設(shè)計(jì)視頻制作
汽車標(biāo)志厚片吸塑
DedecmsWordpress
Dede模板聯(lián)系博主
精準(zhǔn)搜索請嘗試:精確搜索

WordPress是如何加載模板文件的

2020-09-17 15:49 來源:網(wǎng)絡(luò) 作者:網(wǎng)絡(luò) 點(diǎn)擊數(shù):

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

  萬能的index.php

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

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

  模板加載順序

  下面讓我們來了解一下WordPress都是怎么加載模板的

  首頁

  首先WordPress會(huì)先檢查是否有靜態(tài)首頁,如果有靜態(tài)首頁,就會(huì)加載這個(gè)頁面內(nèi)容并通過 front-page.php 模板文件展示,如果沒有這個(gè)模板文件,就會(huì)通過頁面模板展示

  如果沒有靜態(tài)首頁,就會(huì)加載 home.php

  最新文章模板 如果沒有 home.php 則加載 index.php模板

  文章頁

  首先被考慮的是 single-{post_type}.php 這樣一個(gè)模板文件(如文章類型是 product 那么對應(yīng)的文件名就是 single-product.php )

  如果找不到,那么就會(huì)加載 single.php 模板

  如果連 single.php 模板都沒有則加載 index.php 模板。

  頁面

  首先被考慮的是自定義模板,也就是編輯頁面時(shí)所選擇的模板

  如果沒有自定義模板,則查找 page-{slug}.php 別名模板(如頁面別名是 about 對應(yīng)的文件名就是 page-about.php )

  如果別名模板也沒有就查找 page-{id}.php ID模板(如頁面ID是 2 對應(yīng)的文件名就是 page-2.php )

  如果ID模板也沒有那就是 page.php 模板了

  如果連 page.php 模板都沒有則加載 index.php 模板

  分類頁

  首先被考慮的是 category-{slug}.php 別名模板(如分類別名是 news 對應(yīng)的文件名就是 category-news.php )

  如果沒有別名模板則查找 category-{id}.php ID模板(如分類ID是 1 對應(yīng)的文件名就是 category-1.php )

  如果ID模板也沒有那就是 category.php 分類模板了

  如果 category.php 分類模板也沒有則加載 archive.php 通用歸檔模板

  如果連 archive.php 通用歸檔模板都沒有則加載 index.php 模板

  標(biāo)簽頁

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

  自定義分類法

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

  分類法分類頁首先被考慮的是 taxonomy-{taxonomy}-{term}.php 別名模板(如分類別名 teacher 對應(yīng)的文件名就是 taxonomy-people-teacher.php )

  如果沒有別名模板,則加載該分類法歸檔頁(如 taxonomy-people.php )

  如果分類法歸檔頁模板也沒有則加載 archive.php 通用歸檔模板

  如果連 archive.php 通用歸檔模板都沒有則加載 index.php 模板

  自定義文章類型

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

  自定義文章類型歸檔頁首先被考慮的是 archive-{post_type}.php 別名模板(如文章類型是 product 那么對應(yīng)的文件名就是 archive-product.php )

  如果沒有別名模板則加載 archive.php 通用歸檔模板

  如果連 archive.php 通用歸檔模板都沒有則加載 index.php 模板

  作者歸檔頁

  首先被考慮的是 author-{nicename}.php 別名模板(如作者用戶名是 steven 那么對應(yīng)的文件名就是 author-steven.php )

  如果沒有別名模板則加載 author-{id}.php ID模板(如作者ID是 1 對應(yīng)的文件名就是 author-1.php )

  如果ID模板沒有則加載 author.php 通用作者模板

  如果通用作者模板也沒有則加載 archive.php 通用歸檔模板

  如果連 archive.php 通用歸檔模板都沒有則加載 index.php模板

  日期歸檔頁

  首先被考慮的是 date.php 日期歸檔模板

  如果日期歸檔模板沒有則加載 archive.php 通用歸檔模板

  如果連 archive.php 通用歸檔模板都沒有則加載 index.php 模板

  搜索結(jié)果頁

  首先被考慮的是 search.php 搜索結(jié)果模板

  如果沒有搜索結(jié)果模板則加載 index.php模板

  附件頁

  首先會(huì)按MIME類型加載模板(如 image.php, video.php, application.php,而 text/plain 類型則按順序嘗試加載 text.php, plain.php, text_plain.php 這三個(gè)文件。

  如果沒有對應(yīng)的MIME類型模板則 attachment.php 附件模板(如沒有 attachment.php 則加載 single-attachment.php )

  如果沒有附件模板則加載 single.php 文章頁模板

  如果連 single.php 文章頁模板都沒有則加載 index.php 模板

  使用鉤子修改模板

  在某些使用場景(如插件),我們并不能直接修改模板文件,這時(shí)候我們可以使用鉤子來實(shí)現(xiàn)修改模板文件,鉤子名稱是 {$type}_template 這樣的格式,以下是對應(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è)使用例子(讓頁面加載 single.php 文章頁的模板):

  function page_template_filter( $templates=''){

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

  return $templates;

  }

  add_filter('page_template','page_template_filter');

  模板頁面判斷

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

分享給小伙伴們:
本文標(biāo)簽: WordPress

更多文章

相關(guān)文章

Copyright?2022 螞蟻工坊

豫ICP備16035918號(hào)-1????

主站蜘蛛池模板: 娄底市| 武威市| 江源县| 越西县| 肇州县| 邯郸市| 山东| 遂平县| 广丰县| 金门县| 桐城市| 颍上县| 施秉县| 永新县| 尚志市| 宝丰县| 龙山县| 碌曲县| 四会市| 泰宁县| 赤城县| 乳源| 洞口县| 贵溪市| 峨山| 汝城县| 赤城县| 天镇县| 江油市| 乌海市| 许昌市| 潼关县| 左云县| 昌平区| 昌都县| 航空| 阜新| 鸡西市| 屯留县| 甘肃省| 陇川县|