Mosink墨溟

博客 开发手记

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

写下评论

Ctrl + Enter 也可以发表