一、前期准备:确认环境与基础模板目录
1.1 环境检查
请确保已搭建好符合EyouCMS要求的PHP+MySQL环境:
- PHP版本 ≥ 5.6
- MySQL版本 ≥ 5.5
- Apache/Nginx已配置伪静态规则
1.2 找到模板目录
登录EyouCMS后台,点击左侧「系统管理」→「系统基本参数」→「站点设置」,底部查看「当前模板风格」,对应前台模板文件路径为:`/template/当前模板风格/`
二、EyouCMS循环标签核心基础规则
2.1 标签命名格式
所有循环标签统一使用`{eyou:XXX}{/eyou:XXX}`闭合格式,标签属性用空格分隔,属性值用单引号或双引号包裹。
2.2 核心标签属性
所有循环标签通用的必填属性:
- `channelid`:指定栏目ID,如顶级栏目可忽略或设为`top`,多栏目用逗号分隔(如`1,2,3`)
- `typeid`:同`channelid`,但仅用于列表/内容页关联父/子栏目
- `row`:显示数据条数,默认10条
所有循环标签通用的常用属性:
- `orderby`:排序规则,如`id`(发布ID倒序)、`new`(发布时间倒序)、`click`(点击量倒序)、`sort_order`(后台排序正序)
- `titlelen`:标题截断字数,含标点
- `infolen`:简介截断字数
三、5类最常用EyouCMS循环标签实操(附代码)
3.1 全局/首页顶级栏目循环标签 {eyou:channel}
适用场景:首页/全局导航栏显示顶级栏目
完整可复制代码
```html
{eyou:channel type='top' row='8' currentstyle='active'}
-
{$field.typename}
{/eyou:channel}
```
关键细节说明
- `type='top'`:固定标识顶级栏目,不可省略
- `{$field.currentstyle}`:后台自定义导航类名,前台选中当前栏目会自动替换为设置的类名(可在后台「系统管理」→「系统基本参数」→「核心设置」→「栏目选中样式名称」修改)
- 顶级栏目常用字段:`{$field.typename}`(栏目名称)、`{$field.typelink}`(栏目链接)、`{$field.litpic}`(栏目缩略图)
3.2 子栏目循环标签 {eyou:sonchannel}
适用场景:列表页/栏目页显示当前栏目的所有子栏目
完整可复制代码
```html
```
关键细节说明
- `typeid='$field.id'`:绑定当前页面的栏目ID(仅用于列表/内容页,首页需手动指定具体ID)
- 无子栏目时标签自动隐藏,无需额外判断
3.3 文章列表循环标签 {eyou:list}
适用场景:列表页、首页、内容页相关推荐等显示多篇文章
完整可复制代码
```html
```
关键细节说明
- `onerror="this.src='/public/static/common/images/nopic.png'"`:无缩略图时自动替换为系统默认占位图,也可自定义路径
- `{$field.addtime|MyDate='Y-m-d',}`:日期格式化函数,`Y`是4位年,`m`是2位月,`d`是2位日,可自由组合(如`Y年m月d日`)
- 文章列表常用字段:`{$field.arcurl}`(文章链接)、`{$field.title}`(文章标题)、`{$field.click}`(点击量)
3.4 内容页相关文章循环标签 {eyou:likearticle}
适用场景:内容页底部显示同栏目、同关键词的相关文章
完整可复制代码
```html
相关推荐
{eyou:likearticle typeid='$field.typeid' row='4' titlelen='22' keywords='$field.keywords'}
-
{$field.title}
{$field.addtime|MyDate='m-d',}
{/eyou:likearticle}
```
关键细节说明
- `typeid='$field.typeid'`:优先匹配同栏目文章
- `keywords='$field.keywords'`:匹配同关键词文章(后台需为每篇文章设置关键词)
- 匹配优先级:同栏目>同关键词
3.5 单页内容循环标签 {eyou:arclist}
适用场景:首页/任意页面调用指定栏目的单篇文章(注意单页也是特殊文章类型,后台需先创建单页模型栏目)
完整可复制代码
```html
关于我们
{eyou:arclist typeid='3' row='1'}
{$field.content|html_msubstr=0,150,}
查看更多
{/eyou:arclist}
```
关键细节说明
- `typeid='3'`:替换为你的单页模型栏目ID
- `{$field.content|html_msubstr=0,150,}`:截取内容HTML标签并保留前150字(无此函数会直接输出带标签的内容)
四、常见卡壳问题快速解决
4.1 循环标签无数据输出
请依次检查:
1. `channelid/typeid`是否正确(后台「栏目管理」查看具体ID)
2. 对应栏目下是否有已发布的内容(状态为「已审核」)
3. 模板路径是否正确(是否放在`/template/当前模板风格/`下)
4. 是否清除了后台缓存(点击顶部「更新缓存」按钮)
4.2 日期格式化无效
确保使用的是`MyDate`函数,且参数格式正确(`Y-m-d`等符号用半角)
4.3 选中当前顶级栏目无效
检查导航标签是否使用了`currentstyle`属性,且后台「栏目选中样式名称」设置正确(默认为`on`)