栏目标签
用于调用栏目管理的数据
格式示例
// 获取顶级菜单栏目 {hkcms:channel type="top" where="ismenu=1"} 标题:{$item.title} {/hkcms:channel}
2.1.220504_202205201800版本起,新增ismenu属性,如下
// 获取顶级菜单栏目、显示导航栏目菜单 {hkcms:channel type="top" ismenu="1"} 标题:{$item.title} {/hkcms:channel}
参数
参数名称 | 可选值 | 默认值 | 是否必填 | 支持版本 | 说明 |
---|---|---|---|---|---|
name | 栏目ID或变量 | - | type值为peer或son时必填 | - | 栏目ID,可以传入变量或指定ID,2.2.3.220920版本起支持多个id,详情见下面参数说明 |
type | son peer top | - | - | - | 指定获取的栏目层级 son-获取下级栏目 peer-表示同级栏目 top-表示顶级栏目 |
num | 例子: 10 或者 10,12 | - | - | - | 限制结果数量 例如: 10 : 表示获取10条 10,12 : 表从第10开始的12条记录 |
model | 模型表ID | - | - | - | 指定模型ID |
where | - | - | - | - | 数据库查询条件 |
order | - | weigh desc | - | - | 排序方式, 格式为 order="字段名称 desc" 其中desc是倒序,asc是升序 |
id | - | $item | - | - | 指定循环里的变量名,例如id='obj',模板调用如:{$item.title} 变成 {$obj.title} |
empty | - | - | - | - | 为空的时候输出提示,支持传入html |
currentstyle | - | active | - | - | css class 类名,用于定义当前选中状态样式 |
cache | - | 3600秒 | - | - | 缓存时间,默认3600秒 |
istotal | 1 | - | - | - | 统计文档数量 |
ismenu | 1 | - | - | >=v2.1.220504 | 显示导航栏目菜单 |
lang | - | - | - | >=v2.2.1.20220603 | 多语言情况下获取指定语言的栏目 |
mod | - | - | - | >=v2.2.1.20220603 | 调用:{$mod} 用于控制偶数输出、换行等,更多查看下面的示例 |
key | - | - | - | >=v2.2.1.20220603 | 指定循环值变量名,默认为$i,从1开始计数每循环一次+1 |
参数说明
name
参数通常用于查单条特定的栏目数据。如果type值为peer或son时该值必填,支持变量或数字id
获取栏目ID为3的记录{hkcms:channel name="3"} 标题:{$item.title} <br> {/hkcms:channel}
根据变量来获取栏目,假设在内容详情页有$Info
变量,$Info.categroy.id 是当前文章所属ID,那么我们可以通过这个id来获取栏目同级的栏目代码如下:
// 同级 {hkcms:channel name="$Info.category.id" type="peer"} 标题:{$item.title} <br> {/hkcms:channel}
或者使用变量可以获取当前栏目的上级栏目信息
// $Cate 是当前 栏目的信息该变量在栏目首页、列表页、详情页、单页都存在 {hkcms:channel name="$Cate.parent_id"} 栏目标题:{$item.title} {/hkcms:channel}
2.2.3.220920版本起支持多个id获取栏目。如下,多个栏目ID逗号分隔开
{hkcms:channel name="1,3,7"} 标题:{$item.title} <br> {/hkcms:channel}
type
属性用于获取的栏目层级,如下
1.son
获取下级栏目,需要结合name使用
// 获取栏目ID为1的所有下级菜单 {hkcms:channel name="1" type="son" } 标题:{$item.title} <br> {/hkcms:channel}
2.peer
表示同级栏目,需要结合name使用
// 获取栏目ID为1的所有同级菜单 {hkcms:channel name="1" type="peer" } 标题:{$item.title} <br> {/hkcms:channel}
3.top
表示顶级栏目
// 获取顶级菜单 {hkcms:channel type="top" ismenu="1" } 标题:{$item.title} <br> {/hkcms:channel}
num
限制结果数量。例如获取10条栏目那么num="10",当然也支持从第几条开始,例如num="4,2" 表示从第4条获取两条那就是第4条、第五条。
// 获取顶级栏目从第二条开始获取两条 {hkcms:channel type="top" ismenu="1" num="2,3"} 标题:{$item.title} <br> {/hkcms:channel}
model
模型id,模型ID在模型管理里面可以看到
// 获取模型id=1的所有栏目 {hkcms:channel model="1"} 标题:{$item.title} <br> {/hkcms:channel}
// 使用变量的形式获取顶级栏目 {hkcms:channel model="$Info.model_id" type="top"} 标题:{$item.title} <br> {/hkcms:channel}
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
order
用于字段排序例如上面的代码,格式为order="字段名 asc,字段名2 desc",其中asc
表示正序desc
表示倒序,多个排序字段使用逗号分隔开
// 多个字段排序使用逗号分隔开 {hkcms:channel name="21" type="son" order="weigh asc" } 标题:{$item.title} <br> {/hkcms:channel}
id
用于改变循环变量默认是$item,例如改成$vo则写成id="vo"无需加$。常用于多个标签嵌套时使用循环变量而不受影响
{hkcms:channel name="21" type="son" id="vo" } 标题:{$vo.title} <br> {/hkcms:channel}
empty
为空提示标签,不支持传入HTML,但可以传入变量
{hkcms:channel name="111" type="son" empty="没有更多数据了" } 标题:{$item.title} <br> {/hkcms:channel}
传入变量的形式使用html
{php}$empty = '<p>- 没有更多数据了 -</p>';{/php} {hkcms:channel name="111" type="son" empty="$empty"} {php}dump($item){/php} {/hkcms:channel}
currentstyle
当前选中栏目的class样式用于字体高亮等自定义样式、值默认是active
// currentstyle 默认是active,你可以在这指定其他的class {hkcms:channel type="top" ismenu="1" currentstyle="active"} // 例如:如果当前是新闻中心栏目那么只有新闻中心栏目这条记录有 active 类 <li class="nav-item dropdown {$item.currentstyle}"> <a class="nav-link dropdown-toggle" href="{$item.url}" target="{$item.target}">{$item.title} <i class="fa fa-angle-down"></i></a> </li> {/hkcms:channel}
cache
设置缓存时间单位是秒,系统默认缓存是3600秒,设置成一天:cache="86400"istotal
开启文档数量统计,istotal="1"开启
{hkcms:channel name="9" type="son" istotal="1" } 标题:{$item.title} <br> 数量:{$item.total} <br> {/hkcms:channel}
ismenu
显示导航菜单,值为ismenu="1"。在后台栏目管理页面可以控制导航菜单的显示。
// 获取顶级菜单栏目 {hkcms:channel type="top" ismenu="1"} 标题:{$item.title} {/hkcms:channel}
lang
指定获取特定语言的栏目,需要开启内容多语言才有效
// 只获取英文不管语言怎么切换都是英文 {hkcms:channel name="9" lang="en" } 标题:{$item.title} <br> {/hkcms:channel}
mod
属性用于控制一定记录的换行、或增加hr或奇数偶数等标签处理,例如下面的例子每输出5个栏目增加个hr标签
{hkcms:channel type="top" mod="5"} <p>标题:{$item.title} <br></p> // $mod的值是从1开始的 {if $mod==5} <hr> {/if} {/hkcms:channel}
mod输出奇数偶数记录,设mod="2",标签内会有$mod变量,里面的值每次计算到2的时候重新计数例如(1,2,1,2,1,2)
{hkcms:channel type="top" mod="2"} {if $mod==2} 偶数:{$item.title} <br> {else /} 奇数:{$item.title} <br> {/if} {/hkcms:channel}
- lecms,
classcms,
fastadmin,
pbootcms,
phpcms,
eyoucms,
yzmcms,
xunruicms,
jizhicms,
wordpress,
hkcms,
yzncms,
等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。