Typecho是一款轻量级、高效的开源博客程序,由国内开发者团队开发维护。它采用PHP语言编写,支持MySQL、SQLite等多种数据库,安装包体积仅有500KB左右,运行时内存占用极低,却能提供出色的性能表现。这款博客程序最大的特点就是简洁高效。它没有臃肿的功能,核心代码经过精心优化,数据库结构设计合理,使得页面加载速度非常快。同时,Typecho保持着清晰直观的后台界面,让用户可以专注于写作本身,而不会被复杂的功能干扰。
config文件
类似wp的wp-config.php
文件,typecho也有一个config.inc.php
文件完成类似的任务,这个文件里也定义了几个常量,可以直接供主题调用。通过系统提供的常量,或自定义一些有语义的常量,我们可以更方便的组装出对应资源的文件路径或链接,而不是频繁的去调用系统内置函数。
typecho目录结构
typecho的默认主题是一个很好的参考案例,包含了必要的文件,常用的内容调用方式,后台设置以及文章自定义字段的处理。此外,github上大佬们免费分享的主题也是很棒的学习资料。
主题信息与版本号管理
有点跑题但又没有完全跑题的插播内容,在资源文件后添加一个版本号,当改动这个版本号的时候,可以强制让浏览器将已有的缓存文件更新为新的版本,这样就不需要再简单粗暴的去清理浏览器缓存、清空浏览记录或开启浏览器匿名访问。更为麻烦的是,我的缓存确实由我不由天,用户老爷的缓存你总不能说清就清吧:
那这个版本号从何而来呢,我们可以考虑直接使用主题的版本号,通过获取index.php主题信息拿到版本号并将其作为style.css
等文件的后缀,需要强制更新浏览器缓存内容时,修改一下index.php文件里的版本号就可以了;
欲练神功,必先后台
这是一段typecho默认主题的后台设置代码:
function themeConfig($form)
{
$logoUrl = new \Typecho\Widget\Helper\Form\Element\Text(
'logoUrl',
null,
null,
_t('站点 LOGO 地址'),
_t('在这里填入一个图片 URL 地址, 以在网站标题前加上一个 LOGO')
);
$form->addInput($logoUrl);
$sidebarBlock = new \Typecho\Widget\Helper\Form\Element\Checkbox(
'sidebarBlock',
[
'ShowRecentPosts' => _t('显示最新文章'),
'ShowRecentComments' => _t('显示最近回复'),
'ShowCategory' => _t('显示分类'),
'ShowArchive' => _t('显示归档'),
'ShowOther' => _t('显示其它杂项')
],
['ShowRecentPosts', 'ShowRecentComments', 'ShowCategory', 'ShowArchive', 'ShowOther'],
_t('侧边栏显示')
);
$form->addInput($sidebarBlock->multiMode());
}
初识wp的时候自己对twentyten主题修修改改,倒也有模有样的展现了几个页面的效果,但这种修改仅仅是将代码直接写死在了各个分页文件里,不具备什么通用性,比如换一个域名,换个站点logo,都要去手动调整一下代码。这种方式对于没有编程基础的用户来说显然是不友好的,后台设置页统一提供一个页面,供自己或用户动态修改一些参数,是一个正经主题都应该提供的基础设施。