Shopware中使用Smarty访问三级分类问题求助
解决Shopware中Smarty三级分类渲染问题
嘿,我懂你现在的困扰!你的二级分类代码能正常跑,但直接写$Category.sub.sub肯定出问题——因为$Category.sub是一个分类对象的数组,不是单个分类,只有数组里的每一个二级分类(也就是你循环里的$sub)才会有自己的子分类(三级分类)。
正确的做法是在二级分类的foreach循环里,嵌套一个针对三级分类的判断和循环,就像这样:
<!-- 二级分类循环 --> {if $Category.sub} {foreach $Category.sub as $sub} <li> <a href="{$sub.link}"> <span itemprop="name">{$sub.name}</span> </a> <!-- 三级分类:检查当前二级分类是否有子分类 --> {if $sub.sub} <ul> {foreach $sub.sub as $subsub} <li> <a href="{$subsub.link}"> <span itemprop="name">{$subsub.name}</span> </a> </li> {/foreach} </ul> {/if} </li> {/foreach} {/if}
几个小细节提醒:
- 我把你原来的
href="#"改成了{$sub.link}和{$subsub.link},这样才能跳转到对应的分类页面,不然只是空链接哦 - 给三级分类套了一个
<ul>,这样HTML结构更规范,也方便你用CSS做下拉菜单效果 - 核心逻辑就是:先遍历二级分类,再针对每个二级分类,判断并遍历它的子分类(三级)
这样调整后,你的三级分类应该就能正常渲染出来啦!
内容的提问来源于stack exchange,提问作者if.cookie
相关产品推荐
相关产品推荐

