WordPress的模板层次

WordPress模板的定义十分不便,然而在定制模板之前,咱们有必要晓得WordPress的模板层次,理解WordPress是如何加载模板文件的,这将无利于开发模板时正当利用资源及进步工作效率。

**的index.php

经过“WordPress主题形成”这篇文章,咱们已晓得一个最简略的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的模板层次(2)构造图。

应用钩子修正模板

在某些应用场景(如插件),咱们并不能间接修正模板文件,这时分咱们能够应用钩子来完成修正模板文件,钩子称号是 {$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() 则是判别文章页的条件标签,等等。

以上就是安达网络工作室关于《WordPress的模板层次》的一些看法。更多内容请查看本栏目更多内容!

本文相关话题: WordPress 模板层次
版权声明:本文为 安达网络工作室 转载文章,如有侵权请联系我们及时删除。
相关文章
制止wordpress主动将半角转换为全角 制止全角和半角的转换

找到wp-includes/formatting.php文件中复制代码代码如下:// This is not a tag, nor is the texturization ...

封闭wordpress新用户注册邮件告诉的办法

本文实例讲述了封闭wordpress新用户注册邮件告诉的办法。分享给大家供大家参考。详细剖析如下: wordpress博...

wordpress弱小的网站建立cformsII留言板插件

最近在做一个客户的企业网站建立时,需求往数据库提交信息的表单页面,然而Wordpress自带的评论性能来做的话...

wordpress wp_head()函数使页面顶部总空白28px

在wordpress主题中的header.php中,有一个wp_head()函数,外表上看不出什么玄机,只能在阅读器中查看源代码...

WordPress中创立用户角色的相干PHP函数应用详解

WordPress 默许有 “订阅者”、“投稿者”、“作者”、“编辑” 和 “治理员” 五个用户角色,权限由低到高...

更改WordPress主动生成摘要的形式

首先列表会变得很臃肿,得到了列表的自身作用——不便用户寻觅真正想要看的帖子,其次,在搜寻引...

需求提交

客服服务