TYPO3 9.5.5 - 不在第二个菜单中生成语音 URL

TYPO3 9.5.5 - Speaking URLs not generated in a second menu

在我当前的 TYPO3 9.5.5 "classic mode" 项目中,3 个菜单块在这样的文件夹结构中进行管理:

RootPage
- Home (-> this is a separate menu)
- [FOLDER FOR MAIN MENU]
-- Menu 1
-- Menu 2
-- Menu 3
- [FOLDER FOR META MENU]
-- Contact
-- Privacy Protection

菜单是通过 MenuProcessors 生成的,如下所示:

page.10.FLUIDTEMPLATE.dataProcessing {
        // Main menu
        20 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        20 {
            special = directory
            special.value = {$mainMenuFolderPid}
            as = menuMain
            titleField = nav_title // title
            expandAll = 1
            includeSpacer = 0
            levels = 3
        }

        // Meta menu
        25 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
        25 {
            special = directory
            special.value = {$metaMenuFolderPid}
            as = menuMeta
                       ...
        }
}

虽然 home menumain menu 在说话 url 方面按预期工作,但 meta menu 无法正确创建说话 url , 而是直接使用页面标题,这意味着 Contact 中的 "c" 确实是大写的, Privacy Protection 中的 "p" 也是如此,其中也有空 space。 生成的 URL 格式如下所示:

https://domain.tld/Contact
https://domain.tld/Privacy Protection

这会导致 404(在“站点配置”中定义的那个;404 工作正常)。

如果我将元菜单更改为 list 并手动添加页面 ID,则会为该菜单生成相同的错误结果。

奇怪的是,当直接从后端打开联系人页面时,会生成正确的 url (domain.tld/contact.html)(即使我手动重命名 slug ).

有谁能帮我理解一下我做错了什么吗?

好吧,事实证明,游戏中还有第三名玩家,名叫 Fluid。在所有那些花哨的标签中隐藏了一个愚蠢的拼写错误......我没有在 href 标签中解决 item.link,而是使用 item.page.title,它生成了不需要的输出。我的坏...

这听起来像是菜单提供程序中拼写错误的 object 符号。如果使用 menuItem.link,将生成 link。但是您似乎获得了 menuItem.page.title.

之类的标题