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

相关推荐
haaaaaaarry15 分钟前
Element Plus常见基础组件(一)
java·前端·javascript·vue.js
qingyingWin30 分钟前
原生微信小程序研发,如何对图片进行统一管理?
前端·微信小程序
不懂英语的程序猿40 分钟前
【JEECG】JVxeTable表格拖拽排序功能
前端·后端
拾光拾趣录1 小时前
前端灵魂拷问:从URL到Redux,17个常见问题
前端·面试
萌萌哒草头将军1 小时前
Prisma ORM 又双叒叕发布新版本了!🚀🚀🚀
前端·javascript·node.js
mldong1 小时前
推荐一款超高颜值的后台管理模板!Art-Design-Pro!开源!免费!
前端·vue.js·架构
草字1 小时前
uniapp 如果进入页面输入框自动聚焦,此时快速返回页面或者跳转到下一个页面,输入法顶上来的页面出现半屏的黑屏问题。
java·前端·uni-app
程序视点2 小时前
Wise Duplicate Finder 重复文件查找工具 - 永久免费专业版文件去重工具
前端·windows
一点一木2 小时前
🚀 2025 年 07 月 GitHub 十大热门项目排行榜 🔥
前端·人工智能·github
脑袋大大的3 小时前
uni-app x开发避坑指南:拯救被卡顿的UI线程!
开发语言·前端·javascript·vue.js·ui·uni-app·uts