Typecho 主题开发笔记
给博客换过好几套主题,最后还是决定自己写。Typecho 的主题机制非常朴素,几个 PHP 文件就能跑起来。
最小结构
| 文件 | 作用 |
|---|---|
index.php | 首页与列表,必须,头部注释里写主题信息 |
post.php | 文章页 |
page.php | 独立页面 |
archive.php | 分类、标签、搜索结果 |
functions.php | 主题设置、自定义字段、工具函数 |
comments.php | 评论 |
主题设置
在 functions.php 里定义 themeConfig,后台就会出现对应的设置项:
function themeConfig($form)
{
$form->addInput(new \Typecho\Widget\Helper\Form\Element\Text(
'siteHome', null, 'https://mosink.top',
_t('主站地址'), _t('左上角标识指向这里。')
));
}读取时用 $this->options->siteHome,或者 Helper::options()->siteHome。
自定义评论结构
只要定义一个名为 threadedComments 的全局函数,Typecho 就会用它来渲染每一条评论。这比覆盖 CSS 灵活得多。
一些小心得
- 输出用户内容时记得转义:
htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); $this->need('header.php')比include好,路径永远相对主题目录;- 列表页的
$this->excerpt()会截断 HTML,带代码块的文章最好在<!--more-->处手动分隔。
评论 · Comments0