Typecho主题开发1~3:HelloWorld

前言

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...

相关推荐
格子软件17 小时前
2026年GEO优化系统源码级状态机与多模型调度拆解
java·前端·vue.js·人工智能·vue·geo
HUMHSX18 小时前
Vue 项目启动全流程解析:从入口文件到全局指令注册与页面渲染
前端·javascript·vue.js
有颜有货18 小时前
PMC生产排产的4种算法,一次讲清
java·服务器·前端
小虎牙00718 小时前
Android kotlin图片库Coil源码详解
android·前端
随风一样自由18 小时前
【前端领域】前端开发核心应用场景与落地实践
前端·前端框架
an3174219 小时前
弹窗数据流设计的两种高阶架构实践
前端·vue.js·架构
谢尔登19 小时前
【React】 状态管理方案
前端·react.js·前端框架
用户21366100357219 小时前
Vue商品详情与放大镜组件
前端·javascript
半个落月19 小时前
从Tapas小Demo理清localStorage、事件与this
前端·javascript
李明卫杭州19 小时前
Vue2 中 v-model 处理不同数据结构的技巧
前端·javascript·vue.js