菜鸟笔记
提升您的技术认知

WordPress主题制作教程:主题文件解析

阅读 : 6024

在讲解WordPress主题文件之前,先来分析下WordPress官方源文件,我们下载好的WordPress程序一般包括以下这些文件

以下是WordPress默认主题default文件夹下的所有模板文件。看了下图,可能你还摸不着头脑,到底这些文件是干什么的。WordPress的主题是用PHP编写的,而不是纯HTML + CSS,所以模板文件的后缀名是.php,如果你想精通WordPress的主题制作,完美控制你的博客,最好要熟悉PHP编程。

根目录文件

  • index.php
  • license.txt
  • readme.html
  • wp-activate.php
  • wp-blog-header.php
  • wp-comments-post.php
  • wp-config.php
  • wp-config-sample.php
  • wp-cron.php
  • wp-links-opml.php
  • wp-load.php
  • wp-login.php
  • wp-mail.php
  • wp-settings.php
  • wp-signup.php
  • wp-trackback.php
  • xmlrpc.php

根目录路径

wp-admin:后台管理需要的类和文件

wp-includes:WP强大的类库及核心函数定义

wp-content:

  • languages 多语言包,使用Poedit编辑和创建语言包
  • plugins 插件安装目录
  • themes 主题安装目录
  • upgrade 文件上传目录

开发主题的话我们只用到wp-content目录下的themes目录,这里面只是简单介绍一下WordPress的官方源文件,其实我们在开发主题的过程中很少用到其他WordPress的源文件。

开始制作WordPress主题之前,我们先了解下WordPress的主题文件构成,一般来讲一个WordPress主题至少包括index.php和style.css这两个文件。

WordPress主题文件

index.php //主模板文件,所有主题都需要它
style.css //样式表文件,不可缺少,并包含主题的信息标题
rtl.css //如果网站语言的文本方向是从右到左,则会自动包含从右到左的样式表
comments.php //评论模板。
page.php //访问者请求单个页面时使用页面模板,这些页面是内置模板。
home.php //默认情况下,主页模板是首页。如果您没有将WordPress设置为使用静态首页,则此模板用于显示最新帖子。
header.php //头部模板文件通常包含您网站的文档类型,元信息,样式表和脚本的链接以及其他数据。
footer.php //公共底部模板
sidebar.php //侧边栏模板
single.php中 //日志模板。
archive.php //归档模板,如果分类标签页没有模板的话,会使用这个模板
category.php //分类页模板
tag.php //标签页模板
search.php中 //搜索结果模板用于显示访问者的搜索结果。
404.php //当WordPress无法找到与访问者请求匹配的帖子,页面或其他内容时,将使用404模板
functions.php //增加WordPress功能

主页

  • home.php
  • index.php

文章页:

  • single-{post_type}.php - 如果文章类型是videos(即视频),WordPress就会去查找single-videos.php(WordPress 3.0及以上版本支持)
  • single.php
  • index.php

页面

  • 自定义模板 - 在WordPress后台创建页面的地方,右侧边栏可以选择页面的自定义模板
  • page-{slug}.php - 如果页面的缩略名是news,WordPress将会查找 page-news.php(WordPress 2.9及以上版本支持)
  • page-{id}.php - 如果页面ID是6,WordPress将会查找page-6.php
  • page.php
  • index.php

分类

  • category-{slug}.php - 如果分类的缩略名为news,WordPress将会查找category-news.php(WordPress 2.9及以上版本支持)
  • category-{id}.php -如果分类ID为6,WordPress将会查找category-6.php
  • category.php
  • archive.php
  • index.php

标签

  • tag-{slug}.php - 如果标签缩略名为sometag,WordPress将会查找tag-sometag.php
  • tag-{id}.php - 如果标签ID为6,WordPress将会查找tag-6.php(WordPress 2.9及以上版本支持)
  • tag.php
  • archive.php
  • index.php

作者

  • author-{nicename}.php - 如果作者的昵称为rami,WordPress将会查找author-rami.php(WordPress 3.0及以上版本支持)
  • author-{id}.php - 如果作者ID为6,WordPress将会查找author-6.php(WordPress 3.0及以上版本支持)
  • author.php
  • archive.php
  • index.php

日期页面

  • date.php
  • archive.php
  • index.php

搜索结果

  • search.php
  • index.php

404 (未找到)页面

  • 404.php
  • index.php

附件页面

  • MIME_type.php - 可以是任何MIME类型 (image.php, video.php, audio.php, application.php 或者其他).
  • attachment.php
  • single.php
  • index.php

除基本index.php模板文件外,你可以选择是否添加要实现特定模板的文件。如果WordPress找不到与特定模板的文件,它将跳转到层次结构中的下一个文件。如果WordPress找不到任何匹配的模板文件,将使用index.php文件。

以主页为例,home.php和index.php都可以表示主页,WordPress程序会从你的主题文件中依次查找这两个文件,如果找到home.php,则使用home.php作为博客首页模板,即使你的主题文件中有index.php;如果home.php未找到,则使用index.php作为首页模板;如果home.php和index.php都找不到,你的主题将不会被WordPress识别,也就没法运行。

上面虽然讲了这么多文件,但并不是每个文件都需要,用到什么模板创建相应的文件就行。对于复杂一点的主题,通常会有很多php函数,为了有清晰的层次结构,一般会将代码分装在其它的php文件中,可以在functions.php使用require_once()或incluede()等函数引入文件。