WP主题教程#15:子模板文件(Sub-Template Files)

继续昨天没有完成的内容,今天你将会新建更多的子模板文件,就像昨天的header.phpsidebar.phpfooter.php文件一样。

既然昨天就已经将index.php文件拆分了,那今天的内容就变得更加简单了。

第一步

在进行这一步之前,先看一下的侧边栏,点击一下存档链接,跳转的页面应该跟你的首页没有任何不同吧?

  • 新建一个新文件:archive.php
  • index.php文件中的所有内容都复制黏贴到archive.php文件中
  • 保存archive.php文件
  • 在archive.php文件中,将the_content改为the_excerpt
  • 再次保存archive.php文件

你通过新建archive.php文件并且改变它的内容使其与index.php文件不同来自定义存档页面的外观

现在,如果你刷新你的存档页面,你只会得到摘要而不是全部的文章内容。

为什么你想这么做?为了避免因为你的博客有重复内容而受到Google的不利对待。如果一个存档页面和首页显示的内容相同,那么这就是重复内容。

如果你的博客是私有的呢?那么就没有必要将存档页面和首页分开了,但是这也并不是说摘要对于私有博客没有什么用处。

同样的,默认情况下,你的分类页面也会从archive.php文件中寻找信息来展示它的内容,如果你没有archive.php文件,分类页面就会找index.php文件中的信息。

如果你想让你的分类页面看起来和首页还有存档页面不同,那么就新建一个category.php文件并且自定义它。

第二步

  • 新建文件:search.php
  • archive.php文件中的所有内容都复制黏贴到search.php文件中
  • 保存你刚刚做的修改

现在,所有的搜索结果都会以摘要的形式展示了,如果没有search.php模板文件,搜索选项就会在index.php寻找怎样展示搜索结果的信息。

(可选的)你也可以到第一节去回顾一下层次结构。

第三步

  • 新建两个文件:page.phpsingle.php
  • index.php文件中的所有内容都复制黏贴到page.php文件和single.php文件中。(此时,page和single应该是相同的)
  • 保存page.php和single.php,关闭index.php文件和single.php文件

第四步

还记得Pagepage是不同的吧?page.php模板就是用来自定义那么特殊的Pages(单个独立的页面,就像你的“关于”页面)的外观的。

首先,在page.php文件中的的下面输入以下代码:

Pages: ‘, ‘

’, ‘number’); ?>

’, ‘

’); ?>

其次,从page.php文件中删除postmetadata代码,下面是没有postmetadata后的代码的样子:

最后,从page.php中删除posts_nav_link()或者导航模块的内容。

刚刚发生了什么事情?

第一行代码是用来显示子页面的链接的。

例如,编辑你的“关于”页面。根据我下面的截图来看要加什么。

当你不得不将你的一个很长的页面拆分为很多页面的时候,这就非常有用了。

对于第二行代码,它是只针对管理员的编辑链接

你的页面是没有分类的,同时你也不想显示它们的时间戳(页面创建时间等信息),所以你将postmetadata删除了。同时你也把posts_nav_link()删除了,是因为Page页面不用显示下一页前一页链接。

保存page.php文件然后关闭 。

第五步

点击一篇文章的标题来查看剩下的文章内容就会跳转到单篇文章的页面。Single.php模板就是用来处理特定某篇文章的外观的。

single.php文件中的下面输入以下代码:

Pages: ‘, ‘

’, ‘number’); ?>

对,这和子页面链接的代码是一样的。你知道其实你也可以将文章拆分为很多个子文章吗?

然后,在postmetadata模块,删除函数和它前面的
标签,但是不要将整个postmetadata都删除了。

你删除了评论链接函数因为在单篇文章中它没有用了,所以在single.php文件中不没有必要留着它。在BR标签后只有管理员能看到的编辑链接了,你不想给只有你能看到的链接换行吧?所以你把BR标签删除了。

最后,用下面的代码替换

在首页、存档页、分类页面和搜索页面,你用posts_nav_link()函数来调用下一页前一页链接,在单篇文章页面,没有下一页和前一页链接,你通过previous_post_link()next_post_link()函数来调用前一篇文章链接和下一篇文章链接。

保存single.php文件,到单篇文章页面的导航区去看一下有什么不同了。

本节回顾

  • 你新建了四个文件或者说子模板:archive.php、search.php、page.phpsingle.php文件
  • archive.php模板和search.php的内容是一样的
  • 独立的页面(Pages)没有分类(和文章不同)。它们也没有下一页前一页链接
  • ingle.php不会显示评论的数量(通过comments_popup_link()函数调用)也不是通过posts_nav_link()调用导航链接的。

返回WordPress主题系列教程的开始