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的模板层次》的一些看法。更多内容请查看本栏目更多内容!
找到wp-includes/formatting.php文件中复制代码代码如下:// This is not a tag, nor is the texturization ...
本文实例讲述了封闭wordpress新用户注册邮件告诉的办法。分享给大家供大家参考。详细剖析如下: wordpress博...
最近在做一个客户的企业网站建立时,需求往数据库提交信息的表单页面,然而Wordpress自带的评论性能来做的话...
在wordpress主题中的header.php中,有一个wp_head()函数,外表上看不出什么玄机,只能在阅读器中查看源代码...
WordPress 默许有 “订阅者”、“投稿者”、“作者”、“编辑” 和 “治理员” 五个用户角色,权限由低到高...
首先列表会变得很臃肿,得到了列表的自身作用——不便用户寻觅真正想要看的帖子,其次,在搜寻引...