`
flex_莫冲
  • 浏览: 1096384 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[WORDPRESS系列]WordPress 模板层次详细介绍

阅读更多
参考来源:http://blog.wpjam.com/article/wordpress-template-hierarchy/

WordPress模板的定义非常方便,但是在定制模板之前,我们有必要知道WordPress的模板层次,了解WordPress是如何加载模板文件的,这将有利于开发模板时合理利用资源及提高工作效率。

万能的index.php

我们知道一个最简单的WordPress主题只需要 style.css 和 index.php 文件即可。这代表着 index.php 可以是任何一个页面的模板,无论是首页,还是文章页,或是分类页,再或者是搜索结果页面,它都能完美胜任。

也就是说,当对应的模板不存在时, index.php 将是WordPress最后的底牌。

模板加载顺序

下面让我们来了解一下WordPress都是怎么加载模板的

首页

首先WordPress会先检查是否有静态首页,如果有静态首页,就会加载这个页面内容并通过 front-page.php 模板文件展示,如果没有这个模板文件,就会通过页面模板展示
如果没有静态首页,就会加载 home.php  最新文章模板
如果没有 home.php 则加载 index.php 模板
文章页

首先被考虑的是 single-{post_type}.php 这样一个模板文件(如文章类型是 product 那么对应的文件名就是 single-product.php )
如果找不到,那么就会加载 single.php 模板
如果连 single.php 模板都没有则加载 index.php 模板。
页面

首先被考虑的是自定义模板,也就是编辑页面时所选择的模板
如果没有自定义模板,则查找 page-{slug}.php 别名模板(如页面别名是 about 对应的文件名就是 page-about.php )
如果别名模板也没有就查找 page-{id}.php ID模板(如页面ID是 2 对应的文件名就是 page-2.php )
如果ID模板也没有那就是 page.php 模板了
如果连 page.php 模板都没有则加载 index.php 模板
分类页

首先被考虑的是 category-{slug}.php 别名模板(如分类别名是 news 对应的文件名就是 category-news.php )
如果没有别名模板则查找 category-{id}.php ID模板(如分类ID是 1 对应的文件名就是 category-1.php )
如果ID模板也没有那就是 category.php 分类模板了
如果 category.php 分类模板也没有则加载 archive.php 通用归档模板
如果连 archive.php 通用归档模板都没有则加载 index.php 模板
标签页

标签页模板加载顺序和分类页一样,只不过前缀不过 category 而是 tag (如 tag-{slug}.php)。

自定义分类法

有时候除了WordPress默认的分类目录和标签我们还需要其他的分类方法,这时候我们就会注册一个新的分类法,那么在此之前知道分类法的模板加载顺序也是十分必要的。以下说明假设自定义分类法是 people 这个名字:

分类法分类页首先被考虑的是 taxonomy-{taxonomy}-{term}.php 别名模板(如分类别名 teacher 对应的文件名就是 taxonomy-people-teacher.php )
如果没有别名模板,则加载该分类法归档页(如 taxonomy-people.php )
如果分类法归档页模板也没有则加载 archive.php 通用归档模板
如果连 archive.php 通用归档模板都没有则加载 index.php 模板
自定义文章类型

除了自定义分类法,有时候我们也需要自定义文章类型:

自定义文章类型归档页首先被考虑的是 archive-{post_type}.php 别名模板(如文章类型是 product 那么对应的文件名就是 archive-product.php )
如果没有别名模板则加载 archive.php 通用归档模板
如果连 archive.php 通用归档模板都没有则加载 index.php 模板
作者归档页

首先被考虑的是 author-{nicename}.php 别名模板(如作者用户名是 steven 那么对应的文件名就是 author-steven.php )
如果没有别名模板则加载 author-{id}.php ID模板(如作者ID是 1 对应的文件名就是 author-1.php )
如果ID模板没有则加载 author.php 通用作者模板
如果通用作者模板也没有则加载 archive.php 通用归档模板
如果连 archive.php 通用归档模板都没有则加载 index.php 模板
日期归档页

首先被考虑的是 date.php 日期归档模板
如果日期归档模板没有则加载 archive.php 通用归档模板
如果连 archive.php 通用归档模板都没有则加载 index.php 模板
搜索结果页

首先被考虑的是 search.php 搜索结果模板
如果没有搜索结果模板则加载 index.php 模板
附件页

首先会按MIME类型加载模板(如 image.php, video.php, application.php,而 text/plain 类型则按顺序尝试加载 text.php, plain.php, text_plain.php 这三个文件。
如果没有对应的MIME类型模板则 attachment.php 附件模板(如没有 attachment.php 则加载 single-attachment.php )
如果没有附件模板则加载 single.php 文章页模板
如果连 single.php 文章页模板都没有则加载 index.php 模板
模板层次图

上面用文字详细讲述了WordPress模板的加载顺序,尽管详细,但还不如一张信息图更为直观,以下就是WordPress的模板层次结构图。

WordPress模板层次图

使用钩子修改模板

在某些使用场景(如插件),我们并不能直接修改模板文件,这时候我们可以使用钩子来实现修改模板文件,钩子名称是 {$type}_template 这样的格式,以下是对应的完整的钩子名称列表:

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
以下是一个使用例子(让页面加载 single.php 文章页的模板):

function page_template_filter( $templates='' ){
$templates=locate_template("single.php",false);
return $templates;
}
add_filter( 'page_template', 'page_template_filter' );
模板页面判断

一般情况下,在一个特定的模板中我们能清楚知道应该怎么输出特定的样式和内容,但在一些通用模板中(如 header.php )我们想要知道用户当前访问的是哪个页面模板就需要借助WordPress内置的条件判断函数了,这些函数可以帮助我们判断当前是什么页面以方便加载不同的模板内容,如 is_home() 则是判断首页的条件标签,is_single() 则是判断文章页的条件标签,等等。

原文链接:http://www.dmeng.net/wordpress-template-hierarchy.html
分享到:
评论

相关推荐

    wordpress模板开发详情

    WordPress模板,通常被称为主题(Themes),是决定网站视觉样式和布局的一系列文件。一个完整的WordPress主题包括HTML、CSS、JavaScript以及其他PHP文件,它们共同协作呈现网站内容。在深入讨论模板开发之前,我们...

    图解WordPress模板架构

    一、WordPress模板层次结构 WordPress的模板系统基于一系列PHP文件,这些文件按照特定的顺序被调用来决定页面的布局和内容展示。主要的模板文件包括: 1. index.php:这是所有网站的默认模板,当没有其他更具体的...

    WordPress模板

    在WordPress中,模板层次结构是关键概念,它决定了页面内容如何被渲染。基础模板文件包括header.php(页眉)、footer.php(页脚)、index.php(主页)、single.php(单篇文章)、page.php(页面)、archive.php...

    wordpress 模板

    首先,我们需要理解WordPress模板层次结构,这包括header.php(页头)、footer.php(页脚)、index.php(首页)、single.php(单篇文章)、archive.php(存档页)等文件,每个都有其特定的功能。 `dynamic-captions...

    WordPress主题二次开发模板修改教程

    2. **模板层次**:WordPress遵循特定的模板层次规则,根据URL请求决定加载哪个模板文件。理解这个规则能帮助你更高效地定位和修改所需模板。 3. **PHP基础**:WordPress主题主要是用PHP编写,因此你需要掌握基本的...

    wphierarchy, WordPress模板层次结构资源.zip

    wphierarchy, WordPress模板层次结构资源 WordPress模板层次结构描述wphierarchy.com 是对WordPress主题模板层次结构的一个可视化。官方文件位于: https://developer.wordpress.org/themes/basics/tem

    Wordpress 主页模板

    2. 单页模板:所有内容在一个页面上展示,适合个人简历或简单项目介绍。 3. 多列模板:通常包含侧边栏和主要内容区域,适用于内容丰富的博客或新闻站点。 4. 全屏模板:以大图或视频背景为特色,强调视觉冲击力。 5....

    简洁清爽wordpress博客模板

    简洁清爽wordpress博客模板正是基于这样的理念开发出来的,它不但迎合了用户对于美的追求,同时也满足了博主对于高效写作与分享的需求。 WordPress作为全球最流行的开源内容管理系统之一,它强大的扩展性和易用性让...

    akina1.05 wordpress 后台主题模板

    《WordPress后台主题模板:Akina 1.05详解》 在WordPress的众多主题中,Akina是一款备受瞩目的后台主题模板,版本1.05是其早期的一个稳定版本,适用于WordPress 3.26及以下版本。这款主题以其独特的设计、易用性和...

    Wordpress 绿色花纹模板

    WordPress提供了一套基于PHP的模板层次系统,每个部分的模板文件负责渲染特定的网页元素。例如,header.php用于头部内容,footer.php用于页脚,sidebar.php处理侧边栏。用户可以根据需求修改这些文件,或通过...

    function-模板选择器-公共参数.zip

    在WordPress中,模板层次结构是一个预定义的规则集,它决定了系统如何查找并应用最合适的模板文件。通常,这个层次结构从最具体到最通用,包括如single.php(用于单个文章)、page.php(用于普通页面)、archive.php...

    Wordpress Eco模板

    Wordpress Eco模板是一款专为WordPress平台设计的网页模板,它为网站构建提供了高效且美观的解决方案。这款模板以其环保主题而得名,旨在为那些关注可持续发展、环保议题的个人或组织提供一个理想的在线展示平台。...

    Wordpress 主题模板制作教程电子书

    - WordPress主题由多个层次组成,包括页面模板、循环、小工具等。理解这些组成部分之间的关系对于构建高效的主题至关重要。 通过以上内容的学习,读者不仅可以掌握创建WordPress主题所需的基础技能,还能够深入...

    wordpress模板

    WordPress模板是WordPress网站设计的核心元素,它决定了网站的外观和布局。模板由一系列HTML、CSS、JavaScript和其他PHP文件组成,这些文件共同工作以呈现用户在浏览器中看到的页面。WordPress的模板系统允许用户...

    WordPress自适应图片主题 CX-UDY主题模板 带会员积分下载系统

    了解WordPress的主题开发知识,如函数钩子和模板层次结构,将有助于实现这些定制。 总的来说,CX-UDY主题为WordPress用户提供了一个结合自适应设计和积分下载系统的解决方案,旨在提升用户体验并促进用户参与。然而...

    wordpress模板文件

    在WordPress中,开发者可以利用模板层次结构来决定不同页面的显示样式。例如,WordPress会根据URL和页面类型自动选择相应的模板文件。同时,通过编写或修改functions.php文件,可以添加自定义功能,如自定义菜单、小...

    wordpress TEMPLATES

    WordPress模板层次结构是决定页面布局和显示方式的关键。它按照特定顺序查找并使用模板文件,例如header.php用于头部,footer.php用于底部,index.php作为默认模板等。理解这个层次结构有助于开发者创建自定义主题...

    Yusi WordPress 模板扁平化设计

    Yusi WordPress模板遵循这一原则,以清晰的布局、简单的色彩搭配和直白的图标设计,为用户提供了一个无干扰的浏览环境。这种设计不仅美观,而且有助于提高网站的加载速度,对于移动设备用户来说尤其友好,因为扁平化...

    2013.1.13新版 smzdm 什么值得买 - wordpress模板

    1. **WordPress模板层次结构**:WordPress模板遵循一定的层次结构,如header.php(头部)、footer.php(底部)、index.php(主页)、single.php(单篇文章)、category.php(分类页)等,每个文件负责页面的不同部分...

Global site tag (gtag.js) - Google Analytics