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 menu
和 main 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
.
之类的标题
在我当前的 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 menu
和 main 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
.