Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

zh-cn:模板入门

  模板文件是WordPress网站的基础,它们就像拼图一样生成你的网页。有些模板(例如页眉和页脚模板文件)应用在所有的网页上,还有一些模板只会在特定条件下才会用到。

传统的网页包含两个文件:

  在WordPress中(X)HTML结构和CSS样式表是固定的,但是网页中的内容是由各个模板文件在后台生成的。主题文件和样式表存储在一起就成为了一个WordPress主题。要了解更多关于主题开发的内容,请参阅主题开发


WordPress的页面结构

  一个简单的WordPress网页由三个部分组成:头部结构、内容结构、底部结构。这些结构都是由你当前使用的WordPress主题模板文件生成的。

头部

内容部分

底部

  • 头部包含你的XHTML网页顶部的所有信息,即<head> 标签,还有例如<doctype>, <meta>标签和指向样式表的链接。它还包含了<body>标签和你博客头部中可见的部分。(通常包括您网站的名称,也可以包括导航菜单、logo 、网站介绍等等信息)。
  • 内容部分包含你的日志和页面, 即你网站的“肉”。
  • 底部一般是在你的页面最下方,包含了一些相关信息,像通往其它页面的链接或者你网站的分类导航菜单,版权和联系方式等其它信息。


基本模板文件

  一个WordPress主题是从位于你的主题所在路径里的index.php模板文件开始的。这个文件有两个主要功能:

  • 包含或者调用其它模板文件;
  • 包含WordPress主循环以从数据库获取信息(日志、页面、分类等等信息)。

  在我们这个简单的页面结构里,我们只需要包含两个额外的模板文件:头部底部,即header.phpfooter.php。调用它们的模板标签看上去像这样:

<?php get_header(); ?>


<?php get_footer(); ?>

  为了显示你博客的日志和页面(以及定义如何显示它们),你的index.php文件必须在头部与底部调用之间运行WordPress主循环

更加复杂的页面结构

头部

内容部分

侧边栏

底部

  许多WordPress主题包含一个或几个侧边栏以包含导航功能和关于你网站的更多信息。侧边栏是sidebar.php模板文件生成的。可以用这个模板标签将它包含进你的index.php模板文件:

<?php get_sidebar(); ?>

肉在哪里?

  这里请注意,我们没有使用模板标签来获取网页的内容,那是因为内容是在index.php模板文件中的WordPress主循环中生成的。

  同时也请注意,主题的样式表决定了头部、底部、侧边栏和内容部分在用户浏览器上显示的样子和位置。更多的关于WordPress主题和网页设计的信息请参见博客设计与布局.

模板文件中的模板文件

  你已经看到了WordPress是怎样在index.php模板文件中包含标准模板文件(头部、底部和侧边栏)的。你也可以在任何模板文件中包含其它的模板文件。

  例如,sidebar.php中可以包含一个生成搜索栏的模板文件searchform.php。因为这不是一个WordPress的标准模板文件,所以代码有些不同:

<?php include (TEMPLATEPATH . '/searchform.php'); ?>

  为了包含文件,我们可以使用PHP 命令include这个命令需要知道目标文件的具体路径(TEMPLATEPATH 是一个WordPress中的可以指向主题模板文件路径的特殊变量)。

头部

内容部分

评论栏

侧边栏

搜索栏

底部

  多数WordPress主题包括各种包含其他模板的模板文件,以生成网站上的网页。下面这些模板文件就是一个WordPress网站的主模板(index.php)可以包含的典型文件:

  • header.php
    • theloop.php (内容)
    • wp-comments.php
  • sidebar.php
    • searchform.php
  • footer.php

  但是,这个结构是可以被改变的。例如,你可以将搜索栏放置在你的头部文件里;也许你的设计中根本就不包含底部文件,那你就可以完全忽略它的存在。


特殊的模板文件

  WordPress网站的网页有两种核心页面模式单独日志模式用来显示一个单独的日志。多日志模式用来显示多个日志或日志摘要,这种模式同样适用于分类存档、日期存档、作者存档和(通常情况下)你博客主页的正常模式。你可以使用index.php 模板文件来生成所有这些模式或是依靠WordPress的模板分级模式根据不同的情况来选择不同的模板文件。

  WordPress模板分级模式解决了以下问题:

WordPress使用哪个模板文件显示特定类型的页面?

  WordPress会根据标准名称自动识别某些特定模板文件,并使用它们显示特定的网页。例如,当用户点击日志标题的时候,WordPress会认为用户希望在单独日志页面上打开文档。于是WordPress的模板分级模式会优先使用single.php模板文件生成页面(如果你的主题里有single.php的话),而不是使用index.php模板文件生成。同样,如果用户点击了特别分类的链接,WordPress将使用category.php模板文件来显示,如果这个模板文件不存在,WordPress将寻找archive.php模板文件,如果这个模板文件也不存在,WordPress将使用主模板index.php来显示页面。你甚至可以使用特殊的模板文件来显示特殊的分类(更多信息请参见分类模板)。

模板文件技巧

这里有一些创建 WordPress 模板文件的技巧:

跟踪开始标签和结束标签
模板文件包含了XHTML标签和CSS引用。 HTML 元素和 CSS 引用贯穿于模板文件,从一个文件开始,在另一个文件结束。例如,htmlbodyHTML 元素通常开始于header.php文件,结束于footer.php文件。许多 WordPress 主题使用 HTML 的div元素,它可以跨越许多个文件。例如,内容页的主div可能开始于header.php文件,而结束于index.php文件或single.php文件。 如果你在开发、设计或修改主题,跟踪 HTML 元素从哪里开始到哪里结束,这会是很复杂的事情。使用评论在模板文件中对大量标签的开始和结束进行标注,于是你可以跟踪不同div的不同结束部分。
在不同的视图下测试模板文件
如果你对评论、侧边栏、搜索栏或是其它模板文件进行了改动,请确保使用不同的网页视图测试这些模板文件(单篇日志、不同类型的存档和页面)。
标注主题变动
如果你是为公开发行设计主题,要记住那些下载你的主题的人可能会想要为他们自己的应用而稍微修改一下主题。因此,在模板文件中修改了的地方留下笔记,将是非常有帮助的。在主题的主样式文件中加上评论也是一个好主意。(例如在你的header.php文件或 HTML 标签中)。
在你身后关闭标签之门
如果你在一个模板文件中开始了一个 HTML 标签或者div ,要确保你在另一个模板文件中关闭了这个标签。WordPress 论坛上有许多类似“我的主题发生了什么”这样的问题,这些问题基本上都产生于他们在头部模板文件中开始了一个标签,而在没有关闭标签的情况下删除了底部模板文件。检查你的标签,确保它们都是闭合的。(这里有一个好办法来确认这一切是否正确,那就是使用HTML 校验器来查看你的单独和存档页面。)
模板中的CSS样式
你可以在你的模板中的任何一个地方自由的使用你喜欢的 HTML 和 CSS 的标签和样式。然而,我们鼓励你使用标准的 WordPress 主题结构(参见网站结构 1.5)。这可以使你的用户更加容易理解你的主题。

模板文件资源

如果需要有关模板文件资源的综合清单,请参见模板你可能还希望查看其它文档:分类:模板分类:模板标签.