You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:47:25