首页 / 开发文档 / 标签语法总览

标签语法总览

两类标签、属性规则、条件判断,以及模板里绝对不能做的事。

两类标签

类型写法用途
单标签{naicha:site name="title"}取一个值,直接输出
块标签{naicha:list}…{/naicha:list}循环输出一段 HTML

属性写法

name="news"        双引号字符串
num="10"           数字
flag="1"           布尔
title="{naicha:param name="cid"}"   属性值里可以嵌套标签

变量取值

循环里用 标签名.字段名:

{list.title}              标题(自动 HTML 转义)
{list.content html="1"}    正文(按 HTML 原样输出)
{list.summary excerpt="60"}  截取 60 字并去掉标签
{list.publish_time format="Y年m月d日"}
{list.title urlencode="1"}   用于拼 URL
默认就是安全的:不写 html="1" 时,输出内容一律做 HTML 转义。 只有当字段内容确实是你自己写的富文本时,才加 html="1"。

条件判断

{naicha:if var="list.top" eq="1"}
  <span class="badge">置顶</span>
{naicha:else}
  <span>普通</span>
{/naicha:if}

可用比较:eq、neq、gt、lt、gte、lte、notempty。 判断变量不存在或为空时,条件一律不成立,不会报错。

在 JavaScript 里用变量

<script> 内部只识别 {naicha:...} 形式的标签,其余花括号原样保留 —— 这样 JS 里的对象、函数体、CSS 规则块都不会被误当成模板变量。

<script>
fetch('{naicha:url type="api"}/upload', { method: 'POST' })   // ✔ 正常编译
var obj = { a: 1 };                                        // ✔ 原样保留
</script>

需要在脚本里取宿主变量(如后台地址)时,用 {adminBase} 这类少数几个已放行的名字, 其余裸变量请改用 {naicha:param name="x"} 明确取值。

模板里做不到的事

  • 不能写 SQL。模板只能调用受控的取数标签,语法上就没有拼接 SQL 的口子。
  • 不能调任意 PHP 函数。能用的只有修饰符(excerpt、format 等)和标签。
  • 不能取没在控制器里传入的变量,取不到输出空串,不会泄露其它数据。
没找到答案? 可以在 联系我们 留言说明使用场景,我们会补充进文档。