当前位置: » 技术分享 » wordpress主题模板加载顺序机制汇总

wordpress主题模板加载顺序机制汇总

本文共2057个字,预计阅读6分钟。

我们要创建一个新的wordpress模板需要先了解有哪些页面模板,这些页面模板的文件是什么?它们是怎么工作的?下面博主汇总了一些常用的wordpress模板结构方便大家查找

首页

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

文章页

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

页面

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

分类页

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

标签页

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

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

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

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

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

作者归档页

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

日期归档页

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

搜索结果页

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

附件页

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

可以得出结论是,不管缺少哪一个模板文件 最终都会指向 index.php页面,也就不会出现空白页的问题了,,,,,

喜欢 0
转载请标明出处:创之梦博客
本文地址:http://52czm.cn/?p=1250
  • 近期文章
  • 标签云
    css3妙用 (8) H5分享 (4) HTML基础 (4) jquery/js特效 (3) Linux服务笔记 (5) MYSQL笔记 (1) php学习 (6) SEO排名 (2) Vue学习 (2) WP主题制作 (27) 博主推荐 (1) 博客有趣挂件 (1) 玩转重装系统 (3) 网站建设 (2) 美文推荐 (2) 随笔录 (3)
  • pomoshh-psihologa-online :

    pomoshh-psihologa-online pomoshh-psihologa-online

  • 创之梦 :

    离大佬还早着,哈哈哈,这个相对比较基础,还有很多东西

  • 程志辉 :

    点赞!!!感觉越来越大佬了

  • 52czm.cn :

    本博客主题个人原创制作,采用wordpress bootstrap4 ,有兴趣的

  • 52czm.cn :

    留言之前自己做美化感觉效果不是很好 所以用了插件实现 推

  • 52czm.cn :

    看文章的时候,js脚本我怕影响加载速度,文章页我就取消了