会员登录 还没有账号? 立即注册

WordPress网站定制开发专家
成为WPYOU会员, 享受更多专属优惠吧!

成为WPYOU联盟推广代理,获取高比例的推广佣金分成

立即加入

WordPress主题文件层次结构、执行顺序

WordPress主题文件层次结构和执行顺序关系WordPress主题应用到网站中的效率,本文将展示主题文件执行的层次结构。简而言之,当你加载一个页面时,我们要看看哪些模板文件被执行。您可能已经知道单篇日志是用single.php解析的。单个页面是加载page.php来解析的。但WordPress将根据各种实际情况来寻找不同的模板文件,因此,这里,我们就要看看这是如何工作的。

我们首先应该清楚这一点,没有 index.php和 style.css你的主题已经不再是一个有效的WP主题,所以理所当然,如果你只有这两个文件,每一个网页被解析时WP都将试图加载index.php。下面我们来看一下WP主题文件执行顺序和层次结构图:

wordpress主题文件执行顺序和层次结构图

每个页面类型的执行流程都将在index.php终结。这就是为什么index.php是每一个WordPress主题所必须的文件。如果我们在WP主题中遗漏任何其他文件(例如,如果没有“search.php”),WP会自动调用index.php。

现在让我们来看看一些执行顺序的细节问题。我要向你们展示WP在你当前活动主题文件夹中搜索文件的流程。当你打算从现在开始创造一个WordPress主题的话,我将会向你展示每一类型的文件执行的层次。

首页(Home)

对于每一个网站,这是第一,也是最重要的一个页面。所以WP提供了极大的范围来让你定制这个页面。让我们看看这个用于显示首页的文件的层次。

  1. home.php
  2. index.php

当客户端请求主页时,WP将搜索使用home.php。如果 home.php存在,它会用到它。否则,它会默认采用index.php。

单篇日志(Post)

  1. single-[post-type].php
  2. single.php
  3. index.php

只要你需要,WordPress可以有各种日志类型。这将会更容易使得一些日志类型可以有不同的设计。默认情况下“post”是WP主要和默认的日志类型。
这样,举例来说,如果你的自定义日志类型是 product ,那么它的模板将会是single-product.php。

单个静态页面(Page)

  1. [custom-template].php
  2. page-[slug].php
  3. page-[id].php
  4. page.php
  5. index.php

与post类型一样,我们可以使用自定义页模板让page类型的页面有不同的页面布局。WP首先搜索指定的页面模板文件(如果存在)。如果没有找到,它将寻找带有当前页面别名(slug)的模板文件。例如,如果别名是aboutus,那么它将在当前主题文件夹中搜索文件page-aboutus.php。WP将像搜索别名页面模板一样搜索文件ID模板。

分类(Category)

  1. category-[slug].php
  2. category-[id].php
  3. category.php
  4. archive.php
  5. index.php

标签(Tag)

  1. tag-[slug].php
  2. tag-[id].php
  3. tag.php
  4. archive.php
  5. index.php

其它分类(Taxonomy)

  1. taxonomy-[tax]-[term].php
  2. taxonomy-[tax].php
  3. taxonomy.php
  4. archive.php
  5. index.php

这里要稍微解释下,什么是taxonomy?它的英文意思很简单,就是“分类”。但是在WP里面仅这么说的话,我相应很多人还是会一头雾水。还有,什么是term ? term 的英文意思是术语。在WP里面,term可以是post_tag(日志标签)、link_category(链接类别)、category(日志分类)及任何其它自定义的分类。例如,自定义了一个名为book(书籍,自定义日志类型)的日志类型,可以把 writer(作家)作为taxonomy ,那么作家的名字,如 hanhan (韩寒),就是term之一,一个taxonomy下可以有很多term.也就是说,taxonomy是term的一个集合。这样,我们就可以有taxonomy-writer-hanhan.php 作为显示韩寒的书籍分类页面的模板,taxonomy-writer.php 作为显示书籍分类的模板。

作者(Author)

  1. author-[author-nicname].php
  2. author-[author-id].php
  3. author.php
  4. archive.php
  5. index.php

附件(Attachment)

  1. [mime-type].php
  2. attachment.php
  3. single.php
  4. index.php

日期(Date)

  1. date.php
  2. archive.php
  3. index.php

存档(Archive)

  1. archive.php
  2. index.php

搜索(Search)

  1. search.php
  2. index.php

404页面(404)

  1. 404.php
  2. index.php

你可以使用这些知识在各种类型的页面加载自定义模板,在很多情况下,即使你在使用一个现有的主题,你仍可以在不改变现有模板文件的情况下得到一个定制的解决方案。你只是需要创建新文件,并按照上述规则指定一个新的名字。

也许有朋友会说,你这个文章中列的文件不完整,不是还有 comments.php 和 comments-popup.php 吗?是的,对于一个标准的主题,这是应该有的。不过,本文不是在讨论WP主题应该有哪些文件,而是讨论主题文件的执行顺序问题,归根结底,comments.php 和 comments-popup.php 不是被WP直接调用的,而是由主题制作者自行调用的(由single.php或page.php调用)。因此,在这里没有列出comments.php 和 comments-popup.php,我想也是完全合理的吧,嘻嘻~~~

本文转自: 穿梭于偶然

在线留言

你必须 才能评论!

在线客服

点击这里给我发消息 定制开发 购买主题 售前咨询 售后服务
返回顶部