typecho模板解析优先级

类似于wordpress ,Typecho的模板系统也遵循特定的优先级规则,当系统寻找模板文件时会按照以下顺序进行查找:

基础模板

模板路径:/usr/themes/你的主题/
模板文件命名规则:
文章模板:post.php
页面模板:page.php
分类模板:category.php
归档模板:archive.php
搜索模板:search.php
404模板:404.php

以下内容摘自deepseek,但测试下来,分类页即便添加后缀也无法被正确区分,其他尚未测试,待完善。

模板文件查找优先级

主题自定义模板 (最高优先级)
usr/themes/[主题名]/[模板文件]
例如:usr/themes/default/post.php

插件自定义模板

插件可以通过挂载点提供自定义模板
系统默认模板 (最低优先级)
var/Widget/[组件名]/[模板文件].php
例如:var/Widget/Archive/post.php

具体模板类型优先级

文章/页面模板

主题目录下的自定义模板(如 post-{cid}.php)
主题目录下的 post-{slug}.php
主题目录下的 post.php 或 page.php
系统默认模板

分类/标签模板

category-{slug}.php
category-{mid}.php
category.php
系统默认模板

虽然deepseek给出了这样一个规则,但博主用 1.2.1 版本测试后是无效的,最终只能自行添加判断,代码如下,供参考:

        <div class="content">
            <?php if ($this->category=='factory'): ?>
                <?php $this->need('public/movies.php'); ?>
            <?php else: ?>
            <div class="module-no-head content-category">
                <div class="content-category-img">
                <?php $imageFound = false; ?>                    
                <?php if ($this->options->AugCateImage): ?>
                    <?php $cateList = explode("\r\n", $this->options->AugCateImage); ?>
                    <?php $currentSlug = $this->category; ?>
                    <?php foreach ($cateList as $item): ?>
                        <?php $parts = explode('||', $item); ?>
                        <?php if (count($parts) >= 2 && trim($parts[0]) === $currentSlug): ?>
                            <?php $imageUrl = trim($parts[1]); ?>
                            <?php $imageFound = true; ?>
                                <img src="<?= AUG_IMAGE_URI . '/' .$imageUrl ?>" alt="categoryImage" />
                            <?php break; ?>
                        <?php endif; ?>
                    <?php endforeach; ?>
                <?php endif; ?>
                <?php if (!$imageFound): ?>
                    <img src="<?= AUG_IMAGE_URI . '/cate-default.jpg' ?>" alt="categoryImage" />
                <?php endif; ?>
                </div>
                <h1 class="content-category-title"><?= $this->archiveTitle ?></h1>
                <?php if ($this->description): ?>
                    <div class="content-category-description"><i class="fa fa-fw fa-quote-left" aria-hidden="true"></i><?= $this->description ?></div>
                <?php endif ;?>
            </div>
            <?php endif ;?>
            <?php $this->need('public/postlist.php'); ?>
        </div>

归档模板

archive-{year}-{month}.php
archive-{year}.php
archive.php
系统默认模板

注意事项

模板文件后缀必须是 .php
模板文件名区分大小写
可以通过 $this->is('index'), $this->is('post') 等方法在模板中判断当前页面类型
主题开发者可以在 functions.php 中通过挂载点进一步自定义模板逻辑
了解这些优先级规则可以帮助你更好地组织和自定义 Typecho 的模板文件。

标签: typecho

移动端可扫我直达哦~

推荐阅读

thumbnail 2025-06-08

typecho前台ajax登录与错误处理

尝试了在主题前台做一个登录框,登陆的功能是实现了,有一个小小的不便,就是如果输错了密码,因为页面又跳回了首页,所以弹出式登录框又被隐藏了,登录成功与否不够明显,二次登录的场合操作也较繁琐,所以想实现前台以ajax的方式登录。实现aja...

建站相关 typecho

thumbnail 2025-06-08

聊聊html里的head部分

HTML文档的<head>部分是一个容器,用于包含文档的元数据(metadata)和链接到外部资源的信息,这些内容不会直接显示在网页上,但对网页的功能和表现至关重要。主要元素和功能1. 基础元素<title>:...

建站相关 typecho

thumbnail 2025-06-04

typecho前端实现站点语言的切换

前端修改的数据能及时反馈到后端,那当然需要一个前后端都可以无障碍读取的东西,所以最初是想要用localstorage,但发现php无法直接读取其值,所以就换成了cookie。前端通过js来设置参数值:document.cookie='...

建站相关 typecho

thumbnail 2025-06-02

typecho 主题中的模板与模块的概念

模板是 typecho 主题中一个重要的概念,我们说过typecho的极简主题可以只存在 index.php 这一个文件,但需要展现分类页的时候,typecho事实上会先去寻找名为 category.php 的分类页模板,文章页当然也...

建站相关 typecho

thumbnail 2025-06-02

typecho的几种常见的文章列表调用

处理好了header与面包屑,接下来就按照自己的需求自由发挥了,先放一个分类列表,再挑出一个喜欢的标签,自定义一个该标签下内容展示模块。Typecho 提供了多种文章循环方式,以下是常用的几种方法:标准文章循环<?php whi...

建站相关 typecho

thumbnail 2025-06-02

在typecho里实现面包屑导航

什么是面包屑导航面包屑导航是一种网站导航方式,通常在网站顶部显示,大多会放在站点header的下方,用于显示用户当前位置。 面包屑导航由导航元素构成,每个元素代表一个网站导航项,各个元素通常包含对应链接,供用户跳转。面包屑导航示例首页...

建站相关 typecho

thumbnail 2025-05-29

关于typecho中的路由知识

路由(Routing)是博客系统中将URL地址映射到具体处理逻辑的机制,它决定了当用户访问某个网址时,系统应该执行什么操作、显示什么内容。typecho站点一般都会开启伪静态,伪静态通过URL重写将"漂亮"的URL映射到实际的文件路径...

建站相关 typecho

thumbnail 2025-05-29

Typecho 模板中的翻译函数 _t 与 _e

在 Typecho 模板开发中,_t 和 _e 是用于国际化处理的函数,核心区别在于输出方式:"_t" 函数‌‌功能‌:获取翻译后的字符串但不直接输出,需结合 echo 使用。‌示例‌:<?php echo _t('欢迎语');...

建站相关 typecho

thumbnail 2025-05-26

typecho文章自定义字段的删除与修改

涉及数据库的操作,务必请提前做好备份!提前做好备份!!做好备份!!!小鸟数据的当前主题的缩略图字段命名为augPostThumb,这几天在尝试完善一下原有主题,下载了原站的数据库导入了测试站用于测试页面效果,测试主题的缩略图相关字段拟...

建站相关 typecho

thumbnail 2025-05-26

typecho的文章自定义字段的知识笔记

在typecho中,除了可以自定义设置项之外,我们也可以给文章自定义一些额外的字段,比如给文章编辑界面添加一个缩略图选项,或者增加一个keywords输入框,用来修改编辑当前内容页的关键词信息。// 主题设置 function th...

建站相关 typecho