标签列表与导航列表是页头页脚的高频标签:标签列表输出标签云或标签聚合,导航列表配合导航子分类输出多级菜单。两个标签都属于循环标签,参数与字段针对各自的业务对象设计,高亮判断统一交给页面激活标签完成,写法风格保持一致。
标签列表支持数量、排序方向、排列方式、状态过滤、栏目过滤与子栏目开关。排列方式只支持标签表真实存在的字段,包括编号、名称、别名、描述、使用次数、状态与时间字段,其中使用次数最常用于热门标签排序;非法字段自动回退为编号倒序,只影响顺序不影响页面渲染。
栏目过滤存在一个解析优先级:显式栏目参数优先,其次取循环上下文中的栏目,然后是页面级当前栏目,都取不到时回退为全站标签。这个优先级让多栏目共用一个列表模板成为可能,模板里不需要硬编码栏目编号。
导航列表按父ID参数输出某一层的导航项,字段包括名称、链接、智能链接、编号、别名、图标、排序与内容数量。菜单项之间互相独立,层级关系由导航子分类标签在循环内部展开,支持多层嵌套,嵌套深度有请求级限制,防止模板异常引发递归失控。
菜单高亮统一由页面激活标签完成:把当前页面标识与导航项的别名对比,命中时返回激活样式名。行内三元写法可以省略假值,未命中时不输出任何类名。传统写法用激活状态块标签包裹,功能等价,新模板推荐使用行内三元,结构更紧凑。
三级及以上菜单用嵌套结构表达:外层输出一级项,内层导航子分类输出二级项,再内层继续展开三级。同一套嵌套标签的字段前缀在各层保持一致,渲染时自动绑定当前层级数据;条件判断同样作用于当前层级,无子分类的项不输出空的下拉区域。
页脚的常见结构是标签云加友情链接加版权信息,页头的常见结构是导航菜单加语言切换加搜索入口。标签列表在侧栏还可输出当前栏目的标签聚合,写法是设置子栏目开关为不包含子栏目,并依赖页面级栏目回退自动取到当前栏目。
列表与菜单的输出结构都由数据顺序决定,模板里不需要对条目数量做假设。后台新增栏目、调整排序后,前端列表顺序自动跟随,这是循环标签相比手写静态结构最直接的收益。
| 标签 | 核心参数 | 核心字段 | 典型位置 |
|---|---|---|---|
| 标签列表 | 数量、排列方式、栏目过滤 | 名称、链接、使用次数 | 标签云与侧栏 |
| 导航列表 | 父级编号、数量 | 名称、智能链接、图标 | 页头与页脚菜单 |
标签列表与导航列表看起来业务不同,写法却是同一套循环逻辑:参数定范围与顺序,字段定内容,嵌套定层级。导航菜单的多级展开交给嵌套标签,模板与栏目结构保持解耦,站点扩容时改数据不改模板。
评论
加载中...