正在加载文档...
标签模板标签
iCMS 标签系统技术文档
标签标签 (TagFunc)
标签标签用于获取和显示标签数据,支持标签列表、标签信息等功能。
tag:list 标签
获取标签列表数据。
支持参数
参数名 | 类型 | 默认值 | 说明 |
---|---|---|---|
row | 整数 | 10 | 每页显示条数 |
cache | 布尔值 | 0 | 是否缓存结果 |
time | 整数 | -1 | 缓存时间(秒) |
page | 布尔值 | 0 | 是否启用分页 |
status | 整数 | 1 | 状态(1:正常) |
rootid | 整数 | - | 父标签ID |
rootid! | 整数 | - | 排除的父标签ID |
field | 字符串 | - | 字段名 |
tkey | 字符串 | - | 标签键名 |
tcid | 整数/字符串 | - | 标签分类ID |
cid | 整数/字符串 | - | 内容分类ID |
keywords | 字符串 | - | 搜索关键词 |
meta | 布尔值 | 0 | 是否获取元数据 |
orderby | 字符串 | id | 排序字段 |
by | 字符串 | DESC | 排序方式(ASC/DESC) |
特殊排序参数
参数值 | 对应字段 | 说明 |
---|---|---|
hot | count | 按热度(使用次数)排序 |
new | id | 按最新添加排序 |
sort | sortnum | 按排序值排序 |
返回数据结构
[
[
'id' => 标签ID,
'name' => 标签名称,
'tkey' => 标签键名,
'field' => 字段名,
'url' => 标签链接,
'count' => 使用次数,
'seotitle' => SEO标题,
'keywords' => SEO关键词,
'description' => SEO描述,
'status' => 状态,
'sortnum' => 排序值,
'rootid' => 父标签ID,
'tcid' => 标签分类ID,
'cid' => 内容分类ID,
'pic' => [图片信息],
'addtime' => 添加时间
],
// 更多标签...
]
使用示例
<!--{iCMS:tag:list row='20' orderby='hot' by='DESC' cache='1'}-->
<div class="tag-cloud">
<h2>热门标签</h2>
<div class="tags">
<!--{foreach key="key" value="value" from="$tag_list"}-->
<a href="<!--{$value.url}-->" class="tag-item" style="font-size: <!--{$value.count/10+12}-->px;">
<!--{$value.name}--> (<!--{$value.count}-->)
</a>
<!--{/foreach}-->
</div>
</div>
最佳实践
标签云展示
<!--{iCMS:tag:list row='50' orderby='hot' by='DESC' cache='1'}-->
<div class="tag-cloud">
<h2>标签云</h2>
<div class="tags">
<!--{foreach key="key" value="value" from="$tag_list"}-->
<!--{"$fontSize = min(max(12, $value.count/5+12), 24)"}-->
<!--{"$opacity = min(max(0.5, $value.count/100+0.5), 1)"}-->
<a href="<!--{$value.url}-->" class="tag-item"
style="font-size: <!--{$fontSize}-->px; opacity: <!--{$opacity}-->;">
<!--{$value.name}-->
</a>
<!--{/foreach}-->
</div>
</div>
分类标签展示
<!--{iCMS:tag:list tcid='1' row='20' cache='1'}-->
<div class="category-tags">
<h3>分类标签</h3>
<div class="tags">
<!--{foreach key="key" value="value" from="$tag_list"}-->
<a href="<!--{$value.url}-->" class="tag-item"><!--{$value.name}--></a>
<!--{/foreach}-->
</div>
</div>
内容相关标签
<!--{iCMS:article:data id='$id'}-->
<div class="article-detail">
<h1><!--{$article_data.title}--></h1>
<div class="content"><!--{$article_data.content}--></div>
<!-- 文章标签 -->
<!--{if $article_data.tags}-->
<div class="article-tags">
<span>标签:</span>
<!--{foreach key="tkey" value="tag" from="$article_data.tags"}-->
<a href="<!--{$tag.url}-->" class="tag"><!--{$tag.name}--></a>
<!--{/foreach}-->
</div>
<!--{/if}-->
<!-- 相关标签 -->
<!--{iCMS:tag:list cid='$article_data.cid' row='10' orderby='hot' cache='1'}-->
<div class="related-tags">
<h3>相关标签</h3>
<div class="tags">
<!--{foreach key="key" value="value" from="$tag_list"}-->
<a href="<!--{$value.url}-->" class="tag-item"><!--{$value.name}--></a>
<!--{/foreach}-->
</div>
</div>
</div>
性能优化建议
-
合理使用缓存
<!--{iCMS:tag:list row='50' cache='1' time='3600'}-->
⚠️ 标签数据变动不频繁,可以设置较长的缓存时间。
-
限制数据获取
只获取需要的标签数量,避免不必要的数据库查询:
<!--{iCMS:tag:list row='20' orderby='hot'}-->
-
按需获取元数据
只在需要时设置meta参数:
<!--{iCMS:tag:list meta='1'}-->
调试技巧
-
开启调试模式
<!--{iCMS:tag:list db_debug='1'}-->
-
查看SQL语句
<!--{$tag_list_sql}-->
-
输出变量结构
<!--{$tag_list|print_r}-->
高级用法
多条件组合查询
<!--{iCMS:tag:list
tcid='1,2,3'
field='article'
status='1'
orderby='hot'
by='DESC'
row='20'
page='1'
cache='1'
time='3600'
}-->
标签筛选
<!--{iCMS:tag:list keywords='设计,开发' row='20' cache='1'}-->
<div class="filtered-tags">
<h3>筛选标签</h3>
<div class="tags">
<!--{foreach key="key" value="value" from="$tag_list"}-->
<a href="<!--{$value.url}-->" class="tag-item"><!--{$value.name}--></a>
<!--{/foreach}-->
</div>
</div>
父子标签关系
<!--{iCMS:tag:list rootid='0' row='10' cache='1'}-->
<div class="parent-tags">
<h3>父标签</h3>
<ul>
<!--{foreach key="key" value="parent" from="$tag_list"}-->
<li>
<a href="<!--{$parent.url}-->"><!--{$parent.name}--></a>
<!-- 子标签 -->
<!--{iCMS:tag:list rootid='$parent.id' row='5' cache='1'}-->
<ul class="child-tags">
<!--{foreach key="ckey" value="child" from="$tag_list"}-->
<li><a href="<!--{$child.url}-->"><!--{$child.name}--></a></li>
<!--{/foreach}-->
</ul>
</li>
<!--{/foreach}-->
</ul>
</div>