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

相关推荐
初遇你时动了情3 小时前
css中backdrop-filter 详细使用 ios毛玻璃效果、filter和backdrop-filter使用说明
前端·css
景彡先生4 小时前
Python Selenium详解:从入门到实战,Web自动化的“瑞士军刀”
前端·python·selenium
Liudef066 小时前
DeepseekV3.2 实现构建简易版Wiki系统:从零开始的HTML实现
前端·javascript·人工智能·html
景早8 小时前
vue 记事本案例详解
前端·javascript·vue.js
wangjialelele9 小时前
Qt中的常用组件:QWidget篇
开发语言·前端·c++·qt
乔冠宇9 小时前
vue需要学习的点
前端·vue.js·学习
用户47949283569159 小时前
同样是 #,锚点和路由有什么区别
前端·javascript
Hero_11279 小时前
在pycharm中install不上需要的包
服务器·前端·pycharm
爱上妖精的尾巴9 小时前
5-26 WPS JS宏数组元素添加删除应用
开发语言·前端·javascript·wps·js宏
是谁眉眼9 小时前
wpsapi
前端·javascript·html