前言
Typecho是我接触过最好用,最简单,最快的建站程序,看了一下官网第一篇文章居然是2008
年的!!!这个程序只比我小了一岁 (甚至可能比我还大)
写Typecho主题模板不难,你只需要会HTML看得懂CSS即可。
重要
Typecho主题开发系列教程基于TTDF
GitHub:github.com/ShuShuicu/T...
关于TTDF
在这之前特别感谢@Sualiu的贡献,伟大 无需多言!
这是一款Typecho主题模板开发框架,还算不上框架只能说让开发变得更简单些
HelloWorld
ok,我们将下载好的TTDF
解压到Typecho主题目录usr/themes
打开ide,修改index.php头部注释中的相关信息
php
<?php
/**
* 欢迎使用Typecho主题模板开发框架!
* @package TTDF
* @author 鼠子(Tomoriゞ)
* @version 1.0.0
* @link https://github.com/ShuShuicu/TTDF
*/
Name | Info |
---|---|
package | 主题名称 |
author | 主题作者 |
version | 主题版本号 |
link | 主题链接 |
修改后启用主题访问Typecho站点首页应该就能看到:

接下来继续看下方的php代码:
php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
// 面向过程调用
get_template('AppHeader');
// 输出 TTDF 默认内容,开发前删除即可
TTDF::HelloWorld();
// 面向对象调用
Get::Template('AppFooter');
第一个if判断是禁止直接访问到php文件的
get_template&Get::Template方法为require_once引入目录Template文件夹下的php文件
TTDF::HelloWorld方法为调用默认内容,作为测试使用,开发时删掉即可
基础结构
主题的基础结构以及语法
文件 | 页面 |
---|---|
index.php | 首页 |
post.php | 文章 |
page.php | 页面 |
archive.php | 分类标签 |
下面我们开始编写index.php首页的模板
index.php
php
<?php
/**
* 欢迎使用Typecho主题模板开发框架!
* @package TTDF
* @author 鼠子(Tomoriゞ)
* @version 1.0.0
* @link https://github.com/ShuShuicu/TTDF
*/
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
Get::Template('AppHeader');
// while 输出文章列表
while (GetPost::List()) {
GetPostHTML();
};
// 编写文章列表HTML
function GetPostHTML() {
?>
<li>
<a href="<?php GetPost::Permalink(); ?>">
<h2><?php GetPost::Title(); ?></h2>
<p><?php GetPost::Excerpt(); ?></p>
</a>
</li>
<?php
};
Get::Template('AppFooter');
如果你需要自定义归档(分类标签)页面的样式就在主题根目录新建archive.php
,写法和index.php
是一样的
接下来写文章/页面详情页面post.php
php
<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
Get::Template('AppHeader');
?>
<h2><?php GetPost::Title(); ?></h2>
<p>
<?php GetPost::Date(); ?> · <?php GetPost::Category(); ?> · <?php GetPost::Tags(); ?>
</p>
<div>
<?php GetPost::Content(); ?>
</div>
<?php
Get::Template('AppFooter');
这时候点击文章链接到内页就可以看到文章内容了。
如果你需要自定义独立页面的样式就在主题根目录新建page.php
,写法和post.php
是一样的
提个建议,例如全局调用的组件(侧边栏,评论样式)就写到Template
目录下使用Get::Template()
方法或get_template()
函数调用,根目录仅保留入口文件
更多调用方法请阅读文档:github.com/ShuShuicu/T...