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

TYPO3 8.7子菜单无页面显示问题求助

TYPO3 8.7子菜单仅显示|的修复方案

问题分析

你的子菜单代码渲染后仅显示<ul class="nav nav-list" id="sidebar-nav">|</ul>,说明COA容器内的10(父级标题)和20(HMENU菜单)均未输出有效内容,核心原因可能是页面配置、TypoScript参数错误或拼写问题。

修复步骤

1. 检查页面基础配置

  • 确认要展示的所有页面均已勾选在菜单中显示(页面属性 → 行为 → 在菜单中显示)
  • 确认页面未被隐藏(页面属性 → 行为 → 隐藏),且处于生效时间范围内(开始/结束时间未过期)

2. 修正TypoScript拼写错误

在2级菜单配置中,存在拼写错误:

# 错误代码
IFUSB < .1.IFSUB
# 修正为
IFSUB < .1.IFSUB

3. 调整HMENU的entryLevel参数

entryLevel = 1表示从网站结构的第1级(根页面直接子页面)生成菜单,若当前页面不在该层级下,会导致无内容输出。根据需求选择合适的参数:

  • 要显示当前页面的直接子菜单:设置entryLevel = -1
  • 要显示当前页面所在层级的兄弟页面及子菜单:设置entryLevel = level:0
  • 要固定显示第1级页面的子菜单:保留entryLevel = 1,但需确保第1级页面存在且可在菜单中显示

4. 确保父级标题(10)的有效性

给10添加判断,仅当存在第1级页面时才输出:

10 = TEXT
10.wrap = <li class="list-group-item">|</li>
10.data = leveltitle:1
10.typolink.parameter.data = leveluid:1
# 添加判断,避免无内容时输出空li
10.if {
    value.data = leveluid:1
    isGreaterThan = 0
}

5. 简化HMENU调试

如果以上调整后仍无内容,可先简化HMENU配置,验证基础输出:

20 = HMENU
20 {
    entryLevel = -1 # 根据需求修改
    1 = TMENU
    1 {
        NO = 1
        NO.wrap = <li>|</li>
    }
}

若简化版能输出菜单,再逐步恢复原有的样式、CUR/ACT等配置。

完整修正后的代码示例

lib.subnav = COA
lib.subnav {
    wrap = <ul class="nav nav-list" id="sidebar-nav">|</ul>

    10 = TEXT
    10.wrap = <li class="list-group-item">|</li>
    #10.wrap {
    #    override = <li class="list-group-item current">|</li>
    #    override.if {
    #        value.data = field:uid
    #        equals.data = leveluid:1
    #    }
    #}
    10.data = leveltitle:1
    #10.data =  levelfield:1,nav_title // leveltitle:1
    10.typolink.parameter.data = leveluid:1
    # 添加判断确保有内容才输出
    10.if {
        value.data = leveluid:1
        isGreaterThan = 0
    }

    20 = HMENU
    20.wrap = |
    20 {
        entryLevel = -1 # 改为-1显示当前页面子菜单,根据需求调整
        1 = TMENU
        1 {
            wrap = |
            expAll = 0

            NO = 1
            NO.allWrap >
            NO.wrapItemAndSub = <li class="list-group-item">|</li>
            CUR = 1
            CUR < .NO
            CUR.wrapItemAndSub = <li class="list-group-item active current">|</li>
            ACT = 1
            ACT < .CUR
            ACT.wrapItemAndSub = <li class="list-group-item active">|</li>

            # Dropdown menu
            IFSUB = 1
            IFSUB < .NO
            IFSUB.wrapItemAndSub = <li class="list-group-item">|</li>
            IFSUB.ATagBeforeWrap = 1
            IFSUB.stdWrap.wrap = |

            CURIFSUB = 1
            CURIFSUB < .IFSUB
            CURIFSUB.wrapItemAndSub = <li class="list-group-item active current">|</li>

            ACTIFSUB = 1
            ACTIFSUB < .IFSUB
            ACTIFSUB.wrapItemAndSub = <li class="list-group-item active">|</li>
        }


        2 = TMENU
        2 {
            wrap = <ul class="list-group">|</ul>
            expAll = 0

            NO = 1
            NO.allWrap >
            NO.wrapItemAndSub = <li class="list-group-item">|</li>
            ACT = 1
            ACT < .NO
            ACT.wrapItemAndSub = <li class="list-group-item active">|</li>
            CUR = 1
            CUR < .ACT
            CUR.wrapItemAndSub = <li class="list-group-item active current">|</li>

            # 修正拼写错误
            IFSUB < .1.IFSUB
            ACTIFSUB < .1.ACTIFSUB
            CURIFSUB < .1.CURIFSUB

            SPC = 1
            SPC.doNotLinkIt = 1
            SPC.doNotShowLink = 1
            SPC.allWrap = <li class="divider"></li>
        }

        3 < .2
        # no submenus anymore
        3.IFSUB >
        3.ACTIFSUB >
    }
}

内容的提问来源于stack exchange,提问作者Jeppe Donslund

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:45:28