模板标签语法大全
BlogKit 使用自研模板引擎,模板文件为零 PHP 代码的 .html 文件。所有标签使用花括号语法,本篇是完整语法参考。
变量输出
输出变量(自动 HTML 转义)
点语法取嵌套值(同样自动转义)
{field name="title"} 循环内取当前行字段(自动转义)
{field name="content" escape="false"} 输出原始 HTML(可信内容专用)
{field name="_index"} 循环索引(从 0 开始)
{field name="_key"} 循环键名重要约定:顶层变量与 默认一律转义;需要输出 HTML(如富文本正文)必须显式写 escape="false",且仅用于系统生成的可信内容。
过滤器
过滤器链写在变量后,用 | 分隔,参数用 : 传递:
转大写
转小写
截断 50 字,超出补 ...
日期格式化
时间格式化
中文相对时间(3 分钟前)
HTML 转义
去除 HTML 标签过滤器可叠加,如 。
循环
{loop name="articles"}
<li>{field name="title"}</li>
- 循环体通过
读当前行数据; - 支持任意深度嵌套,子循环直接写在内层即可;
{count name="articles"}输出数组长度。
条件判断
有标题时输出
{if status >= 1}已发布 比较运算:>=、>、<、<=
{if type == 'post'}相等比较 字符串相等( 可选)
AB else 分支循环内按字段判断:
{loop name="articles"}
{if field="is_top" >= 1}置顶
支持的变体:、、{if x in [a,b]}、多级 。注意:== 形式只用于「变量与字面量相等」这一种写法,大小比较请使用 >= 等形式。
包含子模板
{include file="common/header"}
{include file="common/footer"}不带 .html 后缀时自动尝试 common/ 子目录。包含文件会走完整解析流程,支持嵌套。
系统内置变量
站点配置项(bk_config 表中的任意键)
{config name="cache_enabled"} 直接读配置
输出表单 CSRF 隐藏域
当前完整 URL
当前年份(页脚版权常用)
zh-CN 当前语言标识专用功能标签
输出分页条(配合控制器分页数据)
{plugin_hook name="sidebar"} 触发插件钩子并输出返回内容
{if-permission type="login"}登录可见 权限包裹模板继承与宏
引擎支持模板继承(TemplateInheritance)与宏定义/宏调用(macro),可在主题内复用公共布局片段。
编译与缓存
模板首次渲染时编译为 PHP 文件存于 storage/,之后直接使用编译产物;模板文件修改后自动重新编译。开发主题时如遇改动不生效,到后台「系统维护 - 缓存设置」清理模板缓存。