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 模板
运用钩子修正模板
在某些运用场景(如插件),我们其实不能间接修正模板文件,这时候候我们可使用钩子来完成修正模板文件,钩子称号是 {$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() 则是判别文章页的前提标签,等等。
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务