淦!又是一点,后台改个模板,想在新闻列表页侧边栏调用“公司动态”下的所有子栏目导航,结果翻遍标签手册,写的跟天书一样,试错试了半小时直接给我整不会了,这玩意儿但凡逻辑直白点也不至于这么费烟。
别急,老哥,我踩过的坑你别踩。帝国CMS里,所谓的“非顶级栏目”,其实就是子栏目(或者叫二级、三级栏目)。调用它们的核心思路就俩:要么你直接指定它爹(父栏目ID),让系统自动找出它所有的崽;要么你自己点名(指定栏目ID/栏目名),精准打击。千万别在栏目树里迷路,看看官方这抽象派文档就明白了。
方法一:找爹法(通过父栏目ID调用其所有子栏目)
这招最常用。比如你的“公司动态”栏目ID是2,想调用它下面所有的子栏目(比如“行业新闻”、“内部公告”)。就用 [phomenav] 这个标签,但一定要用 parentid 参数!
代码示例:[phomenav parentid='2']
这行代码的意思就是:“把栏目ID为2(公司动态)的所有亲儿子栏目,给我列出来。” 清晰得一批。
方法二:点名法(直接指定要调用的栏目ID或名称)
如果你就想精准调用特定的几个栏目,不管它们是不是同一个爹生的,用 [phomenav] 的 classid 参数,ID之间用英文逗号隔开。
代码示例:[phomenav classid='3,5,8']
这行代码翻译过来就是:“我不管你们仨(ID为3,5,8的栏目)是谁的儿子,现在就给我站出来排好队。” 适用于做自定义的导航聚合。
⚠️ 重点来了,血泪经验:
1. 先查ID! 别猜!去后台“栏目管理”鼠标移到栏目名上,看浏览器状态栏或者直接点修改,地址栏里“classid=XX”那个XX就是它的身份证。搞错ID,一切白搭。
2. 标签是 [phomenav],别写成别的,这标签专门管前台栏目导航调用。
3. 参数名(parentid, classid)一个字母都别错,帝国这老系统,错了它屁都不放一个,就给你显示个寂寞。
4. 用完了去前台刷新,然后右键看网页源代码,确认标签是不是被正确解析成了HTML链接列表。别光用肉眼盯着页面看,有时候缓存能把你骗哭。
最后,如果你是想在导航菜单里自动显示当前栏目下的子栏目(比如常见的那种鼠标悬停展开二级菜单),那玩法又不一样了,通常需要结合 [showclasstemp] 和模板里的判断标签来搞,那又是另一个让人头秃的深夜故事了。建议先搞定这种基础调用再说,饭要一口口吃,站要一点点调。
