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

相关推荐
VincentFHR1 小时前
Canvas 高性能K线图,支持无限左右滑动
前端·数据可视化·canvas
sophie旭1 小时前
一道面试题,开始性能优化之旅(3)-- DNS查询+TCP(二)
前端·面试·性能优化
面向星辰1 小时前
css选择器(继承补充)
前端·css
koooo~1 小时前
Vue3中的依赖注入
前端·javascript·vue.js
huuyii1 小时前
Nest 基础知识
前端
沢田纲吉1 小时前
《LLVM IR 学习手记(三):赋值表达式与错误处理的实现与解析》
前端·编程语言·llvm
sophie旭1 小时前
一道面试题,开始性能优化之旅(3)-- DNS查询+TCP(一)
前端·面试·性能优化
IT_陈寒2 小时前
JavaScript性能优化:这7个V8引擎技巧让我的应用速度提升了50%
前端·人工智能·后端
学渣y2 小时前
nvm下载node版本,npm -v查看版本报错
前端·npm·node.js
excel2 小时前
首屏加载优化总结
前端