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

TYPO3 11.5.12导航栏如何动态链接所有站点的子页面

TYPO3 11 多站点跨域导航实现方案

默认MenuProcessor仅读取当前站点根节点下的页面,不需要创建父级站点收纳子站点,按以下两步修改即可实现全站点导航链接输出:

1. 修改setup.typoscript配置

找到配置中dataProcessing节点下你预留的代码位置,保留原有当前站点菜单配置,新增全站点菜单处理器:

dataProcessing {
    10 = TYPO3\CMS\Frontend\DataProcessing\FilesProcessor
    10 {
        references.fieldName = media
    }
    // 原有当前站点主菜单配置保持不变
    20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
    20 {
        levels = 2
        includeSpacer = 1
        as = mainnavigation
    }
    // 新增:拉取全实例所有站点的页面数据
    30 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
    30 {
        entryLevel = 0
        special = rootline
        special.value = 0
        levels = 2
        includeSpacer = 1
        excludeDoktypes = 6,7,254,255
        as = allSitesNavigation
    }
}
  • 配置中special.value = 0代表从TYPO3实例最顶层节点(pid=0)开始读取页面,如果你的多站点根页面统一挂载在某个公共目录页下,将该值改为对应目录页的ID即可
  • excludeDoktypes会自动过滤后端用户页、回收站、系统文件夹、快捷方式这类不需要前台展示的页面类型

2. 修改导航栏Partial模板

将原有导航栏遍历逻辑调整为合并输出两类菜单数据,支持二级页面展示,同时自动过滤当前站点的重复链接:

<a href="#" class="open_menu bg-light">
    {/* 输出当前站点导航链接,保留原有业务逻辑 */}
    <f:for each="{mainnavigation}" as="navPoint">
        <div><a href="{navPoint.link}" class="f-heading f-22 link color-white mb-20">{navPoint.title}</a></div>
    </f:for>

    {/* 输出其他站点导航链接 */}
    <f:for each="{allSitesNavigation}" as="siteNavPoint">
        {/* 跳过当前站点根页,避免链接重复 */}
        <f:if condition="{siteNavPoint.uid} != {site.rootPageId}">
            <div><a href="{siteNavPoint.link}" class="f-heading f-22 link color-white mb-20">{siteNavPoint.title}</a></div>
            {/* 遍历输出站点下二级页面 */}
            <f:for each="{siteNavPoint.children}" as="subNavPoint">
                <div class="ms-3">
                    <a href="{subNavPoint.link}" class="f-16 link color-white mb-10">{subNavPoint.title}</a>
                </div>
            </f:for>
        </f:if>
    </f:for>
</a>
  • 代码中{site.rootPageId}是TYPO3 11自带的全局站点变量,可直接在Fluid模板中调用,不需要额外通过数据处理器赋值
  • 如果不需要展示二级页面,删掉对应子级<f:for>循环即可
  • 样式类名可以根据你的实际设计需求自行调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 21:57:22