都说wordpress很强大,原因之一就是这个可以自由定制的主题模板系统,你完全根据自己的需求制作出任何形式的主题。如果你对wordpress的主题工作原因还不清楚,可以参考一下本文,就算你不打算开发主题,也是值得一看的。如果你想修改一下别人的主题的话,至少知道该如何下手。

主题文件

wordpress存放主题的文件夹位于 wp-content/themes/,该文件夹下的每个子文件夹既是一个主题文件夹(对应一个主题),比如默认的default主题文件即存放在wp-content/themes/default/文件夹下。下面我们看一下该文件夹下需要哪些文件、各个文件的作用以及文件之间的联系。请参考下面这张图片

上图是从官方codex中找到的,图中列举出了主题最常用的一些文件以及文件之间的关系,如果你看不清楚的话可以点击图片查看大图。

其中page-slug.php, page-id.php, category-slug.php , tag-id.php 只能在wordpress 2.9以上的版本中有效。

举例说明

当我们浏览主页的时候(以本站http://domety.com为例),wordpress首先判断是否设置了静态首页(一般情况我们都没有使用这功能,暂时不作说明),如果没有的话,就进入了上图所示的逻辑判断环节:首先试图调用home.php文件,如果该文件不存在则调用index.php。

当我们点击某篇文章的标题查看文章内容的时候,因为wordpress判断该页面为is_sigle,因此试图调用single.php文件,如果该文件不存在则调用index.php文件。

当我们点击某个页面链接的时候,比如默认的“关于”页面(别名为about,假设page-id为1),则wordpress会按照关于.php、page-about.php、page-1.php、page.php、index.php的顺序查找,如果前面的文件不存在,则查找下一个文件,直到找到可以调用的文件为止。

另外几个常见的主题文件

还有一些常见的文件在图片中没有例举出来,像header.php、sidebar.php、footer.php、comments.php。我们可以通过调用wp函数来加载这些文件,从而组成一个页面文件(比如首页index.php)。你可以打开你正在使用的主题文件夹看一下,一般index.php文件中都会有下面这几个函数:

  • get_header(); —— 默认加载header.php
  • get_sidebar();——默认加载sidebar.php
  • get_footer();——默认加载footer.php

之所以说是“默认”,是因为我们还可以个性化这些文件。比如说我们想让文章页面的侧边栏和首页不一样,可以这样做(这只是其中的一个方法):新建一个sidebar-name.php,其中的name你可以自己定义,然后在sigle.php中调用get_sidebar(‘name’)即可。同样,get_header(‘name’)将加载header-name.php,get_footer(‘name’)将加载footer-name.php。

这些函数的源代码在/wp-includes/ -> general-template.php ,有兴趣的话可以研究一下。

而单文章页面中的评论则可以通过调用comments_template()来加载comments.php文件。该函数定义在/wp-includes/comment-template.php文件中。

总结

从图片以及上面的举例我们可以知道,主题中至少需要包含一个index.php,理论上一个index.php文件即可完成所有的功能以及各个页面的显示效果。当然这是极端情况,由于不方便管理,基本上没有只有一个index.php的主题,至少还需要一个style.css文件来定义页面样式。多找几个主题对比一下,你就知道最常用的文件是哪些,以及常用的主题制作方法。

其实制作主题大部分时间都花在css样式的定义上,细心的你应该会发现,大部分主题的php文件都是差不多的,而sytle.css文件则各不相同。

好了,希望本文能对想制作主题的你起到入门的作用,或者能对你修改主题有所帮助。

添加评论

2 条评论

  1. 1 F

    孕妇网

    2009-12-25 星期五 20:31

    真是点睛之笔~~茅塞顿开~~

    回复
  2. 2 F

    vsweb

    2010-01-02 星期六 00:30

    这个要好好研究 收藏啦

    回复

添加评论