TYPO3 9.5.8中用TypoScript生成tx_news友好URL的问题
TYPO3 tx_news 生成友好详情URL的TypoScript配置方案
你现在遇到的问题我很熟悉——明明已经配置好了tx_news的友好URL,但用CONTENT对象手动生成链接时还是出现带参数的格式,其实只要调整TypoScript里的typolink配置,就能让它调用TYPO3的路由系统生成和列表页一致的友好URL。
修改后的TypoScript代码
把你原来的renderObj里的标题链接部分替换成下面的配置:
news = CONTENT news { table = tx_news_domain_model_news select { pidInList = 24 max = 3 orderBy = datetime DESC } renderObj = COA renderObj { 1 = TEXT 1.field = datetime 1.strftime = %d. %B %Y 1.wrap = <p>|</p> 2 = TEXT 2 { field = title typolink { # 优先使用新闻的自定义内部链接(如果设置了的话) parameter.override.field = internalurl # 当没有自定义链接时,调用tx_news的详情路由生成友好URL route = tx_news_detail route.arguments { news = TEXT news.field = uid } useCacheHash = 0 } } } renderObj.wrap = <div class="header-news-item">|</div> }
关键改动说明
- 删掉了原来手动拼接
additionalParams的代码,改用route = tx_news_detail直接指定tx_news的详情页路由规则 - 通过
route.arguments传递新闻的uid参数,让TYPO3根据你已配置的站点路由规则,自动生成带新闻标题slug的友好URL - 保留了
parameter.override.field = internalurl,确保如果新闻设置了自定义内部跳转链接,依然优先使用该链接
额外注意事项
要确保你的站点配置(config.yaml)里已经正确设置了tx_news的详情路由,类似这样的配置:
routes: - routePath: '/{news-title}' _controller: 'News::detail' _arguments: news-title: news
你之前已经确认友好URL功能正常运行,这部分应该已经配置妥当,无需额外调整。
这样修改后,生成的链接就会和tx_news列表页跳转详情页的格式完全一致啦!
内容的提问来源于stack exchange,提问作者Marcel
相关产品推荐
相关产品推荐

