Z-Blog 主题自定义字段:给文章加一个「副标题」的完整流程

· zblog · 阅读 12
摘要

Z-Blog 的 Metas 机制很灵活,但官方没提供图形化建字段的界面,得靠代码完成。整个链路分四段。一、在主题 include.php 里注册字段(可选)添加/编辑文章页默认就有“自定义字段”区域,所以这一步不是必须的。要限制为固定几个

Z-Blog 的 Metas 机制很灵活,但官方没提供图形化建字段的界面,得靠代码完成。整个链路分四段。

一、在主题 include.php 里注册字段(可选)

添加/编辑文章页默认就有“自定义字段”区域,所以这一步不是必须的。要限制为固定几个字段、并给下拉选项时,才需要挂 Filter_Plugin_Edit_Response3 往表单里插 HTML。

二、保存时无需额外代码

Z-Blog 会自动把 meta_字段名 形式的 POST 数据写进 Metas。关键在表单的 name 属性:

<input name="meta_subtitle" value="{$article.Metas.subtitle}">

必须是 meta_ 前缀,写错了不会报错,但值永远存不进去。这是最常见的失败原因。

三、前台调用

{if $article.Metas.subtitle}
  <p class="subtitle">{$article.Metas.subtitle}</p>
{/if}

列表页里循环输出的 $article 同样带 Metas,可直接用。

四、注意取值方式

$article->Metas->subtitle 取到的是对象,直接 echo 会报错。用 $article->Metas->subtitle->Value,或者在模板里写 {$article.Metas.subtitle}(模板引擎会自动取 Value)。

批量写入

程序里设置用 $article->Metas->Set('subtitle', $val),然后 $article->Save()。注意 Save 之前必须 Set,直接给属性赋值不会被持久化。