很久之前就想给 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.phpindex.php-
独立页面page.phpindex.php-
分类归档category.phparchive.phpindex.php
标签归档tag.phparchive.phpindex.php
日期归档archive.phpindex.php-
搜索页search.phpindex.php-
404 页404.phpindex.php-

如果要自定义页面,官方给的做法是使用自定义模板。
先是创建一个 新的php文件,随便叫什么名字
然后文件开头加上

<?php
/**
 * test
 *
 * @package custom
 */
?>

那个 test 是模板名称,随便改,@package custom 是为了告诉typecho这是个模板
之后可以后台新加一个独立页面,然后自定义模板处选择 这个 模板

标签: none

添加新评论