有的时候希望在 WordPress 网站上显示一些特殊形式的页面,就需要用到自定义页面模板。本文以 WordPress 内置的 TwentyElven(2011) 和 TwentyTen(2010) 主题为例做个详细介绍。与 WordPress 官方文档中的介绍不同的是,这里着重介绍 WordPress 默认主题静态页面模板的内部结构,以方便我们在自定义的时候进行修改。
文章先介绍一下 WordPress 主题的大致结构,然后以 WordPress 自带的主题,主要是 2011 主题为例说明页面模板的组成,最后给 3 个制作自定义页面模板的样例。
1. WordPress 主题的大致结构
以 Twenty Eleven(2011)主题为例,其文件夹下的文件组织结构如下所示。其中 // 号后面的内容为我的注释说明。相信即使是刚入门的朋友看了这个也能够对 WordPress 的主题有个较全面地了解,修改主题就比较顺利了。
在看下面的解释之前,需要先了解一个情况,那就是 php 代码的复用。我们看到的网页并不一定是由一个单独的 php 文件生成的,而是可以由一个主文件调用多个别的文件组合而成。这样就方便代码的复用:比如我想在每个网页都显示同样的一段话,那就没必要在每个不同网页对 应的不同 php 文件里将这段话重复写一遍,而只需要单独建一个 php 文件来生成这段话,再在主文件中需要的地方引用这个文件就可以了。
WordPress 有个要求,即所有主题的页面模板(主 php 文件,调用它即可形成某个网页页面),或者由它调用的模板中,必须在靠近开头的地方包含 wp_head()
(通常放在 header.php
文件中,通过 get_header()
来调用),而在靠近结尾的地方包含 wp_footer()
(通常放在 footer.php
文件中,通过 get_footer()
来调用),因为 WordPress 需要在这些地方处理一些数据。所以如果我们打开一个主题中的文件,发现靠近开头有 get_header()
而靠近结尾有 get_footer()
,则它必然是一个主 php 文件,用于显示某个/某类网页页面。
为了避免混淆,下面统称一个单独的 php 文件为模板,如果是主文件则又称为页面(或页面模板),生成的我们浏览到的称之为网页。至于 php 文件调用,可以通过自写函数实现,也可以直接使用 php 的 include
或者 require
方法,涉及到 php 编程的问题,这里不再介绍。
twentyelven 文件夹内部文件组织结构图: // 先介绍重要的 │ index.php // 主题的引导文件,也是默认的首页的模板 │ header.php // 这个文件包含 HTML 的 <head> 部分(不显示在网页上,但是通过查看