====== 模板制作快速入门 =====
模板的制作并非难事,只要你写好了HTML和CSS,嵌套模板就非常简单了,你无需了解标签的内部结构,你只要会使用,模板就能迅速完成。这篇文章只简单的介绍了常用标签的使用方法,希望能带你进入模板的世界。^_^
本篇文章以Typecho都默认模板为例,您可以打开默认模板default边看边学习。该模板所在的路径为 /usr/themes/default \\
进入该目录后,我们可以看到有许多文件,别犯愁,我们将在下文一一介绍,所有在当前目录下的文件都能在后台的模板编辑页面进行编辑。
===== index.php =====
==== 模板信息 ====
我们先从主文件说起,打开这个文件,首先看到的是注释:
/**
* 这是typecho系统的一套默认皮肤。你可以在typecho的官方网站获得更多关于此皮肤的信息
*
* @package Typecho Default Theme
* @author typecho
* @version 1.0.0
* @link http://typecho.org
*/
这是模板信息存放的地方,它将在后台都模板选择页显示。前两行是简短的介绍,每个“*”表示一个段落。@package 表示模板名,@author 表示作者名,@version 是模板的版本号,@link 是作者的网站连接。
紧挨着注释下方的 include('header.php'),在结尾处也会看到 include('sidebar.php') 和 include('footer.php')。这些语句用来调用模板的其它模块。header故名思议是页首,sidebar是侧栏,footer是页脚。
==== 显示文章 ====
next()): ?>
Published by author(); ?> on date('F j, Y'); ?> in category(','); ?>.
commentsNum('%d Comments'); ?>.
content('Continue Reading...'); ?>
进入文章循环,输出文章,剥开html代码,一句一句介绍
|permalink() ?> | 文章所在的连接 |
|title() ?> | 文章标题 |
|author(); ?> | 文章作者 |
|author->permalink(); ?> | 文章作者地址 |
|date('F j, Y'); ?> | 文章的发布日期,格式可参考[[http://cn.php.net/manual/zh/function.date.php|PHP日期格式]] |
|category(','); ?> | 文章所在分类 |
|commentsNum('%d Comments'); ?> | 文章评论数及连接 |
|content('Continue Reading...'); ?> | 文章内容,其中的“Continue Reading...”是显示摘要时隐藏部分的邀请连接 |
好了,文章显示结束,别忘了结束循环。
==== 文章分页 ====
pageNav(); ?>
文章输出结束后别忘了增加分页,至此,index.php的常见内容结束,应该不糊涂吧。
===== header.php =====
==== 编码 ====
打开这个文件,见到的第一个php代码就是:
调用默认的编码,现在最经常用的大都是utf-8吧。所以我通常是直接写成utf-8,省去php处理时间。
=== 页面标题 ===
options->title(); ?>archiveTitle(); ?>
通常情况下直接复制使用,如果你没有时间的话。
==== 导入样式 ====
其中style.css是样式文件相对模板目录的路径和文件名。
==== 其它HTML头部信息 ====
header(); ?>
别忘了这句,它关系到RSS信息、客户端程序以及插件的正常使用。
==== 页面导航 ====
widget('Widget_Contents_Page_List')
->parse('
本处使用了无序列的页面列表,其中{permalink}是页面的地址,{title}是页面的标题
==== 网站名称 ====
options->description() ?>
| options->siteUrl(); ?> | 网站的首页地址 |
| options->title() ?> | 网站名称 |
| options->description() ?> | 网站的一些简短描述、介绍 |
==== 站内搜索 ====
当你的文章很多很多,这个搜索就必不可少。
===== sidebar.php =====
==== 最新文章列表 ====
widget('Widget_Contents_Post_Recent')
->parse('
获取最新的10篇文章标题,得到的html是
widget('Widget_Comments_Recent')->to($comments); ?>
next()): ?>
获取最新的10个回复,得到的html是
excerpt(10, '[...]'); ?>,“10”代表要回复内容截取的字的个数,“[...]”代表省略的意思,你可以自行修改。
==== 文章分类列表 ====
widget('Widget_Metas_Category_List')
->parse('
{name} ({count})'); ?>
输出:
widget('Widget_Contents_Post_Date', 'type=month&format=F Y')
->parse('
输出:
Tags: tags(',', true, 'none'); ?>
这是获取当前单篇文章的标签,用“,”符号隔开。
==== 调用评论页 ====
===== comments.php =====
==== 评论列表 ====
commentsNum('No Response', 'One Response to"' . $this->title . '"', '%d Responses to "' . $this->title . '"'); ?>
comments()->to($comments); ?>
next()): ?>
sequence(); ?>.
author(); ?>
on date('F jS, Y'); ?> at date('h:i a'); ?>
content(); ?>
还是循环输出评论:
| theId(); ?> | 每个评论的唯一ID |
| sequence(); ?> | 评论所在楼层 |
| responseUrl(); ?> | 回复地址 |
| responseId(); ?> | 回复框ID |
| trackbackUrl(); ?> | trackback地址 |
| author(); ?> | 评论者的名字 |
| date('F jS, Y'); ?> | 评论日期 |
| date('h:i a'); ?> | 评论时间 |
| content(); ?> | 评论内容 |
结束循环。我们用有序列表