typecho 主题开发小记01
很久之前就想给 typecho开发主题,但是一直没有闲下来。
最近得闲就打算开这个坑。
要搭建一个typecho的开发环境。
其实就是下载typecho,然后解压,php启动就行。把要开发的主题放到user的theme文件夹里面,然后就可以开发了。
本地php启动一个服务器
php -S 127.0.0.1:8080 -t typecho先是看default主题里面的文件
404.php 就是404页面
comments.php 就是评论页面
footer.php 就是页脚
functions.php 类似于 utils 有自己实现的函数,typecho的逻辑是启动主题,访问任意一个页面会自动加载这个文件,所以其他文件不用引用就可以使用里面定义的函数
header.php 是页头
page.php 是独立页面
post.php 是文章页面
sidebar.php 是侧边栏
index.php 就是首页,从分类,标签,作者点进去也是这个文件
三个css
grid.css 提供了grid布局
normalize.css 覆写了一些 html标签 的样式,让所有浏览器表现一致
style.css 就是一些样式css
先是看index.php,里面有一些typecho实现的函数
need()
示例:
$this->need('header.php');
作用是引入php文件。typecho封装了这个方法,就不用手动引入,然后可以自己判断路径,防止重复引入。
is()
示例:
$this->is('index')
用来判断是什么页面
_t()
里面的内容会自动翻译然后有返回值给到一个变量
_e()
里面的内容会自动翻译然后直接输出
<h3 class="archive-title"><?php $this->archiveTitle([
'category' => _t('分类 %s 下的文章'),
'search' => _t('包含关键字 %s 的文章'),
'tag' => _t('标签 %s 下的文章'),
'author' => _t('%s 发布的文章')
], '', ''); ?></h3>这个主要是archiveTitle函数,会根据不同的页面显示不同的内容。也就是说在没有定义category等对应的页面时,访问index页面会判断具体是什么页面然后输出对应的内容。
typecho的路由规则
| 页面类型 | 优先 | 其次 | 兜底 |
|---|---|---|---|
| 首页 | index.php | - | - |
| 文章详情 | post.php | index.php | - |
| 独立页面 | page.php | index.php | - |
| 分类归档 | category.php | archive.php | index.php |
| 标签归档 | tag.php | archive.php | index.php |
| 日期归档 | archive.php | index.php | - |
| 搜索页 | search.php | index.php | - |
| 404 页 | 404.php | index.php | - |
如果要自定义页面,官方给的做法是使用自定义模板。
先是创建一个 新的php文件,随便叫什么名字
然后文件开头加上
<?php
/**
* test
*
* @package custom
*/
?>那个 test 是模板名称,随便改,@package custom 是为了告诉typecho这是个模板
之后可以后台新加一个独立页面,然后自定义模板处选择 这个 模板