标签参考 6 更新于 2026-10-13

标签参考 · 内容与列表

本文列出前台模板可用的全部内容类标签。标签用花括号书写。

一、内容列表 contentlist

最常用的标签,用于栏目页、首页区块。

{cms:contentlist catid="9" limit="10" page="1"}
  <a href="{$item.url}">{$item.title}</a>
{/cms:contentlist}
属性必填说明
catid是栏目 ID,多个用英文逗号分隔,或用 $cat.id
limit否每页条数,默认 10
page否当前页码;传 page="1" 表示使用自动分页
order否排序,默认 publish_time desc(不加反引号)
where否附加条件,如 is_recommend=1
id否循环变量名,默认 item
key否索引变量名,默认 k
offset否跳过条数
day否只取最近 N 天

常见用法

-- 首页推荐 6 条
{cms:contentlist catid="1,2,3" limit="6" where="is_recommend=1"}
-- 列表页(带分页)
{cms:contentlist catid="$cat.id" limit="15" page="1"}
-- 排除当前内容
{cms:contentlist catid="$cat.id" limit="5" where="id<>$content.id"}

列表标签已自动携带模型的扩展字段,{$item.price}、{$item.thumb} 等可直接使用。

二、分页 pagelist

与 contentlist 搭配,放在列表标签之后:

{cms:pagelist /}

可自定义样式:

{cms:pagelist item="3" active="current" /}
属性默认说明
item5显示的页码数量
activeactive当前页 class
prev上一页上一页文案
next下一页下一页文案

三、详情页

详情页不需要标签,控制器已注入 $content 数组:

<h1>{$content.title}</h1>
<time>{$content.publish_time|date="Y-m-d"}</time>
<div class="article-body">{$content.content|raw}</div>

{if $content.thumb}
  <img src="{$content.thumb}" alt="{$content.title}">
{/if}

四、单页

单页(关于我们 / 联系方式)同样直取 $content:

<div class="page-body">{$content.content|raw}</div>

五、栏目列表 categorylist

{cms:categorylist id="c" limit="10"}
  <a href="{$c.url}">{$c.name}</a>
{/cms:categorylist}
属性说明
pid父栏目 ID,默认 0(顶级)
self是否包含当前栏目
tree是否输出树形结构
limit条数

树形输出

{cms:categorylist pid="0" tree="true" id="c"}
  <h3>{$c.name}</h3>
  {if !empty($c.children)}
    <ul>
    {volist name="c.children" id="sub"}
      <li><a href="{$sub.url}">{$sub.name}</a></li>
    {/volist}
    </ul>
  {/if}
{/cms:categorylist}

树形模式必须一次性取全量,不要套分页,否则子节点会因父节点不在结果集内而丢失(程序会自动把孤儿节点提升为顶级)。

六、内容详情引用

在任意页面插入另一篇内容:

{cms:content id="3" name="about"}
  <h2>{$about.title}</h2>
  {$about.content|raw}
{/cms:content}

七、标签云 taglist

{cms:taglist limit="30" order="count desc"}
  <a href="{$tag.url}" class="tag">{$tag.name} <em>{$tag.count}</em></a>
{/cms:taglist}

八、搜索与筛选

搜索页直取 $keyword 与 $list,另有筛选标签见 标签参考 · 导航与其他。

九、性能注意

  • 列表页的首屏尽量只用一层 contentlist
  • 不要在同一页面反复查询同一栏目
  • 首页区块建议每块 limit 不超过 10