Z-Blog 主题模板语法:{if}、{foreach}、{$var} 到底怎么写的
Z-Blog 的模板不是原生 PHP。它有一套自己的标签,编译成 PHP 再执行。好处是模板里几乎不写 PHP,坏处是语法错了不会给你友好提示。输出变量最基础的写法是 {$article.Title}。花括号里面直接写变量名,编译后等价于
Z-Blog 的模板不是原生 PHP。它有一套自己的标签,编译成 PHP 再执行。
好处是模板里几乎不写 PHP,坏处是语法错了不会给你友好提示。
输出变量
最基础的写法是 {$article.Title}。花括号里面直接写变量名,编译后等价于 echo。
默认会转义 HTML。想让内容里的标签生效,用 {$article.Content} 之前得确认它在生成时就没被转义,模板这一层不再处理。
想输出函数结果,{$article.Time('Y-m-d')} 这种写法也支持。参数用单引号。
条件判断
{if $article.ID > 0} 开头,{/if} 收尾。中间可以夹 else 和 elseif。
判断一个变量是否存在,别直接写 {if $xxx}。PHP 8 下未定义变量会报警告,模板里看不出来,日志里一堆。要么在 PHP 侧保证赋了值,要么用 isset()。
循环
{foreach $articles as $article} …… {/foreach}。这是最常用的一个。
里面想拿序号,用 {$key},从 0 开始。做“前三篇加粗”这种样式,就靠它。
嵌套和缩进
标签可以嵌套,但别省缩进。三层 foreach 套在一起时,缩进是你唯一的靠山。
我调过一个模板,报错指向第 87 行,实际错在第 41 行少了个 {/if}。缩进对上了,一眼能看出来。
别做的事
别在模板里写数据库查询。别在模板里做复杂计算。
模板只负责展示。数据在 PHP 里准备好,传进来。
你现在打开一个主题的 index.php,看它给模板赋了哪些变量。这些就是你能用的全部。