企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
章节导航 [TOC] <br> ## 内容列表标签 查询模型数据列表、结合分页标签可实现分页、例如获取文章列表等可用该标签。 ## 格式示例 ~~~ // 获取模型ID为1的3条数据。 {hkcms:content model="1" num="3"} <a href="{$item.url}">标题:{$item.title}</a> {/hkcms:content} ~~~ ## 参数 | 参数名称 | 可选值 | 默认值 | 是否必填 | 支持版本 | 说明 | | --- | --- | --- | --- | --- | --- | | catid | 栏目ID或变量,多个栏目使用英文逗号分隔,必须是同模型v2.2.3.220920+ | - | 在列表页可以不填,自动获取。 | - | 默认包含下级文章的内容 | | model | - | - | - | - | 模型ID | | aid | - | - | - | v2.2.3.220920+ | 指定单个文档ID | | aids | 文档ID:1,2,3 | - | - | v2.2.3.220920+ | 指定多个文档ID,英文逗号分隔 | |field| - | * | - | v2.2.3.221215+ | 指定显示的字段,默认是*表示所有,注意:系统已包含(id,lang,style,views,url,category_id,status)无需重复指定| | order | | weigh asc,id desc | - | - | 排序 , 格式为 order="字段名称 desc" 其中desc是倒序,asc是升序| | num | 格式为数字、变量、5,10 |10 | - | - | 限制结果数量;<br>5,10:第五条开始,获取10条数据 | | where | - | - | - | - | 数据库查询条件 | | page | 1 | - | - - | | 开启分页,配合 **{hkcms:contentpage /}** 分页标签 | | insub | 1-包含下级,0-不包含下级 | 1 | - | - | 需要与catid同时使用,默认包含下级文章 | | inlist | 1-列表模式,0-单页内容 | 0 | - | - | 针对单页,填写catid时,获取catid下级的所有单页,支持分页 | | more | 1 | - | - | v2.2.3.220920+不在使用 | 获取副表的数据 | | flag | - | - | - | - | 文档属性值| | id | - | $item | - | - | 指定循环里的变量名,例如id='obj',模板调用如:{$item.title} 变成 {$obj.title} | | empty | - | - | - | - | 为空的时候输出提示,支持传入html | | cache | - | 3600秒 | - | - | 缓存时间,默认3600秒,对非分页数据有效 | | mod | - | - | - | v2.2.1.20220603+ | 控制隔N行输出的内容等,更多查看下面的示例 | | key | - | - | - | v2.2.1.20220603+ | 指定循环变量,如果没有指定key属性的话,默认使用循环变量$i | | filter | 1/0 | 1 | - | v2.3.1.231108+ | 默认是开启筛选的(1开启,0关闭),关闭后不受filter筛选标签影响 | ## 参数说明 `catid` 栏目ID或变量,在列表页时可不填,自动获取列表页的内容数据 1. 获取属于栏目ID为**7**,数量为**6**条的文档 ~~~ {hkcms:content catid="7" num="6"} // style字段是后台内容管理标题加粗、标题颜色,如果需要那么按以下写法获取 <a href="{$item.url}" style="{$item.style}">标题:{$item.title}</a> 封面图:<img src="{$item.thumb}"> // 更多字段可前往后台字段管理里面或手册数据字典里面查看 {/hkcms:content} ~~~ 2. 以变量形式获取,例如在列表页有当前栏目变量($Cate),`catid="$Cate.id" ` $Cate.id是栏目ID,下面示例为获取当前栏目6条文档并开启分页 ~~~ // page="1" 是开启分页 {hkcms:content catid="$Cate.id" num="6" page="1"} <h5><a href="{$item.url}">标题:{$item.title}</a></h5> {/hkcms:content} ~~~ 3. 在列表页,获取当前栏目的文档,可以不传`catid`参数,如下按每页6条分页展示 ~~~ {hkcms:content num="6" page="1"} <h5><a href="{$item.url}">{$item.title}</a></h5> {/hkcms:content} ~~~ 4. 同时获取多个栏目ID的文档数据,catid="栏目ID1,栏目id2" 多个栏目ID使用英文逗号分隔开 ~~~ {hkcms:content catid="11,12" num="6"} <a href="{$item.url}" style="{$item.style}">标题:{$item.title}</a> {/hkcms:content} ~~~ `aid` 获取单条文章,如下获取文档ID为14的记录 ~~~ {hkcms:content aid="14"} <a href="{$item.url}" style="{$item.style}">标题:{$item.title}</a> {/hkcms:content} ~~~ `aids` 获取多条文章,多个文档使用英文逗号分隔开 ~~~ {hkcms:content aids="14,15"} <a href="{$item.url}" style="{$item.style}">标题:{$item.title}</a> {/hkcms:content} ~~~ `model`模型ID参数表示按模型id来获取记录,模型ID在模型管理里面可以看到 ~~~ // 获取模型id为1的记录,num控制显示数量 {hkcms:content model="1" num="5"} 文档标题:{$item.title} 文档描述:{$item.description} {/hkcms:content} ~~~ `order` 用于字段排序,格式为order="字段名 asc,字段名2 desc",其中`asc` 表示升序 `desc` 表示倒序,多个排序字段使用逗号分隔开 ~~~ // 列表页,按最新发布的靠前排序 {hkcms:content order="publish_time desc"} 文档标题:{$item.title} 文档描述:{$item.description} {/hkcms:content} ~~~ <br /> `num` 用于控制记录条数,`num="5"` 表示只获取5条记录。也可以控制从第几条开始,5,10表示第5~15条记录。**注意5,10格式不能用于分页上** ~~~ 注意这种限制范围方式不得用于分页 {hkcms:content model="1" num="5,10"} 标题:{$item.title} {/hkcms:content} ~~~ 1. 动态控制每页展示文档条数可以在后台栏目管理里面配置(栏目管理-》添加-》更多-》分页大小) ![](https://img.kancloud.cn/83/1d/831d044ca1a66ff001694420cf6c3177_631x89.png) 动态文档条数写法示例,num="$Cate.num",$Cate.num是当前栏目的分页大小 ``` {hkcms:content num="$Cate.num" page="1"} // style字段是后台可设置加粗与颜色 <a href="{$item.url}" style="{$item.style}">标题:{$item.title}</a> {/hkcms:content} ``` <br /> `where` 数据库查询条件,语法跟SQL where基本相同。格式:where="字段名 = 1" ,支持传入变量 ~~~ {// 获取模型id为1的记录,where条件意思是只显示阅读量大于1的记录} {hkcms:content model="1" where="views > 1"} 标题:{$item.title} 描述:{$item.description} {/hkcms:content} ~~~ **sql语法可参考:https://www.w3school.com.cn/sql/sql_where.asp** **更多查询表达式参考:https://www.kancloud.cn/manual/thinkphp6_0/1037537** <br /> `page` 开启分页功能,默认是没有分页的,开启后配合`contentpage分页标签`来实现生成底部下的页码 ~~~ {// page="1" 开启分页} {hkcms:content model="1" page="1"} 标题:{$item.title} {/hkcms:content} ~~~ `insub` 控制是否显示下级,该属性需要结合`catid`来使用,默认自动包含该栏目下的所有文档数据包含子级,值为1-包含下级,0-不包含下级。 ~~~ // 不包括子级下的文档,注意获取的下级是跟当前栏目模型一致 {hkcms:content catid="1" insub="0"} 标题:{$item.title} {/hkcms:content} ~~~ <blockquote class="danger"><p>注意:获取下级栏目的文档是跟caitid里面的栏目ID模型一致</p></blockquote> <br /> `inlist` 列表模式用于获取多条单页模型的文章。例如catid="1"栏目ID为1是单页栏目,那么默认情况下获取的是一条单页内容,获取该单页下所有单页栏目里的文档则可以使用该参数。示例如下: ~~~ 开启列表模式,获取当前栏目下5条单页列表 {hkcms:content catid="1" inlist="1" num="5"} <div> {hkcms:raw name="$item['content']" /} </div> {/hkcms:content} ~~~ `more` ~~用于开启列表页获取副表字段。模型管理里面字段管理可以看到字段是否是主表还是副表~~,**后续版本默认有副表字段无需手动开启** ~~~ 开启副表访问 {hkcms:content model="1" more="1" num="5"} 副表内容:{$item.content} {/hkcms:content} ~~~ `flag` 用于输出特定的文档属性,例如在文档属性里面新增了hot属性,那么写法如下 ~~~ 输出模型ID为1且文章带有hot属性的记录 {hkcms:content flag="hot" model="1" num="5"} 标题:{$item.title} {/hkcms:content} ~~~ <span style="color:red">flag属性里面填写的是下面图片中的属性值</span> ![](https://img.kancloud.cn/2c/2c/2c2c2437caffcdf015cbf0f1c9f9316e_747x264.png) 1. flag属性多个使用:and 或 or 关键字,例如获取同时拥有`最新(new)`和`热门推荐(hot)`的属性文档 ~~~ // and 是同时满足,注意两边的空格 {hkcms:content catid="9" flag="new and hot"} 标题:{$item.title}<br/> {/hkcms:content} ~~~ 2. 获取拥有`最新(new)`或者有`热门推荐(hot)`的属性文档 ~~~ // or 只需要包含其中一个属性即可,注意两边的空格,多个写法:flag="new or top or top" 以此类推 {hkcms:content catid="9" flag="new or top"} 标题:{$item.title}<br/> {/hkcms:content} ~~~ ` id` 用于改变循环变量默认是`$item`,例如改成$vo则写成id="vo"无需加$。常用于多个标签嵌套时使用循环变量而不受影响 ~~~ {hkcms:content catid="9" id="vo"} 标题:{$vo.title}<br /> {/hkcms:content} ~~~ `empty`为空(没有数据)提示标签,不支持传入HTML,但可以传入变量形式使用html 1. 示例如下:栏目id为111,里面没有文档时页面上显示`文档内容不存在` ~~~ {hkcms:content catid="111" empty="文档内容不存在"} 标题:{$item.title}<br /> {/hkcms:content} ~~~ 2. 传入变量的形式插入html标签 ~~~ {php}$empty = '<p align="center">- 没有更多数据了 -</p>';{/php} {hkcms:content catid="111" empty="$empty"} 标题:{$item.title}<br /> {/hkcms:content} ~~~ `cache` 设置缓存时间,默认是3600秒 ~~~ // 设置7200秒 {hkcms:content catid="9" cache="7200"} 标题:{$item.title}<br /> {/hkcms:content} ~~~ `mod`属性用于每隔N行输出的内容,例如控制N条记录的换行、或增加hr等,例如下面的例子每输出5个栏目增加一个下划线标签 ~~~ {hkcms:content catid="9" mod="5"} 标题:{$item.title}<br/> {if $mod==5} // 启用mod后,会有$mod变量 <hr> {/if} {/hkcms:content} ~~~ 1. 输出奇数偶数记录,例如:mod="2",标签内会有$mod变量,里面的值每次计算到2的时候重新计数例如(1,2 | 1,2 | 1,2) ~~~ {hkcms:content catid="9" mod="2"} {if $mod==2} 偶数:{$item.title} <br> {else /} 奇数:{$item.title} <br> {/if} {/hkcms:content} ~~~ `key `参数用于指定循环`$i`的变量,只有标签嵌套时可能需要重新命名$key ~~~ {hkcms:content catid="9"} // $i 是从1开始的。 <p>序号:第{$i}篇文档 </p> <p>标题:{$item.title} </p> {/hkcms:content} ~~~ 改变$i的名称 ~~~ {hkcms:content catid="9" key="ii"} <p>序号:第{$ii}篇文档 </p> <p>标题:{$item.title} </p> {/hkcms:content} ~~~ ## 常用示例 - 获取栏目ID为1的列表 ~~~ {hkcms:content catid="1"} <p>计数变量:$i,从1开始:第{$i}篇</p> <p>数组索引:{$key}</p> <p>标题:{$item.title}</p> <p>封面:{$item.thumb}</p> <p>URL:{$item.url}</p> {/hkcms:content} // 传入变量的形式 {hkcms:content catid="$Cate.id"} <p>标题:{$item.title}</p> <p>封面:{$item.thumb}</p> <p>URL:{$item.url}</p> {/hkcms:content} ~~~ - 根据模型ID获取 ~~~ {hkcms:content model="1"} <p>循环变量,从1开始:{$i}</p> <p>数组索引值:{$key}</p> <p>标题:{$item.title}</p> <p>封面:{$item.thumb}</p> <p>URL:{$item.url}</p> <p>作者:{$item.author}</p> <p>关键字:{$item.keywords}</p> {/hkcms:content} ~~~ - 只获取6条数据 ~~~ {hkcms:content model="1" num="6"} <p>循环变量,从1开始:{$i}</p> <p>数组索引值:{$key}</p> <p>标题:{$item.title}</p> <p>封面:{$item.thumb}</p> <p>URL:{$item.url}</p> <p>作者:{$item.author}</p> <p>关键字:{$item.keywords}</p> {/hkcms:content} ~~~ 获取文章的分类信息与模型信息 ~~~ {hkcms:content model="1"} <p>标题:{$item.title}</p> <p>封面:{$item.thumb}</p> <p>URL:{$item.url}</p> <div>栏目名称:{$item.category.title}</div> <div>栏目英文:{$item.category.name}</div> <div>模型名称:{$item.model.name}</div> <div>模型类型:{$item.model.type}</div> {/hkcms:content} ~~~ - ~~获取副表信息~~、后续版本默认包含 ~~~ {hkcms:content catid="1" more="1"} <p>标题:{$item.title}</p> <p>封面:{$item.thumb}</p> <p>浏览量:{$item.views}</p> {/hkcms:content} ~~~ - 获取包含栏目子级的列表数据 ~~~ 注:默认是包含的,如果不想包含 insub="0" 即可 {hkcms:content catid="1" insub="1"} <p>标题:{$item.title}</p> {/hkcms:content} ~~~ - 数据分页 开启分页,每页只显示2条记录 ~~~ {hkcms:content catid="1" page="1" num="2"} <p>标题:{$item.title}</p> {/hkcms:content} <div> //配合分页标签 {hkcms:contentpage item="home,pre,pageno,next,last,info,jump" /} </div> ~~~ - 文档属性 flag="top and new"表示只查出同时满足top和new属性值,flags="top or new"表示只要查出有top或new属性值,注意and和or两边的空格 ~~~ {hkcms:content num="6" page="1" flag="top or ceshi"} 标题:{$item.title} 循环文档属性(包含所有属性字段): {hkcms:volist name="item.flags" id="vo"} <span>{$vo['title']}</span> {/hkcms:volist} 原始值:{$item.flags_raw} {/hkcms:content} ~~~ ## 字段调用 更多字段可在模型管理》字段管理里面找到字段的名字,以下仅包含主要的字段 **注意:其中`$item`变量根据content标签的id参数影响,默认是:$item。$Info 是详情页固定调用方式** | 字段名 | 说明 | 调用方式 | 详情页 | | --- | --- | --- | --- | | id | 文档ID | {$item.id} | {$Info.id} | | category_id | 文档所属栏目ID | {$item.category_id} | {$Info.category_id} | | category_ids | 文档所属父栏目ID,例如:1,2,3 逗号分隔开 | {$item.category_ids} | {$Info.category_ids} | | model_id | 文档所属模型ID | {$item.model_id} | {$Info.model_id} | | flags | 文档属性,数组,使用volist标签循环 | {$item.flags} | {$Info.flags} | | - title | 使用volist循环后,里面写{$item.title},文档属性标题 | - | - | | - name | 文档属性标题 | - | - | | flags_raw | 文档属性,多个属性逗号分隔,例如:top,new | {$item.flags_raw} | {$Info.flags_raw} | | lang | 语言标识 | {$item.lang} | {$Info.lang} | | publish_time | 发布时间,格式是秒,使用date日期格式化标签,或使用下方的字段 | {$item.publish_time} | {$Info.publish_time} | | publish_time_text | 发布时间,格式是年月日时分秒 | {$item.publish_time_text} | {$Info.publish_time_text} | | fullurl | 包含完整域名的URL | {$item.fullurl} | {$Info.fullurl} |