TYPO3 v11中如何在News的TypoScript里设置startingpoint为当前页面ID?
在TYPO3 v11中实现当前页面作为新闻起始点的方法
在TYPO3 v11及更高版本中,USER对象配置里不再支持直接用this或未解析的TSFE变量设置startingpoint,需要通过stdWrap.data来获取当前页面ID,具体修改方案如下:
修改后的完整代码
lib.pageNews = USER lib.pageNews { userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run extensionName = News pluginName = Pi1 vendorName = GeorgRinger switchableControllerActions { News { 1 = list } } settings < plugin.tx_news.settings settings { startingpoint.data = page:uid recursive = 99 templateLayout = 100 hidePagination = 0 #limit = 10 detailPid = 1075 list.paginate.itemsPerPage = 20 } }
关键修改说明
- 把
startingpoint = this替换为startingpoint.data = page:uid:page:uid是TYPO3 TypoScript中获取当前页面ID的标准数据来源,通过data属性能让系统正确解析并注入当前页面UID作为新闻列表的起始点。 - 如果需要复杂逻辑处理(比如追加多个起始点),可结合
stdWrap扩展使用:startingpoint.stdWrap.data = page:uid # 示例:追加额外页面ID作为起始点 startingpoint.stdWrap.wrap = |,123
原方法失效原因
TYPO3 v10+对Extbase的USER对象配置做了严格限制,直接在settings里使用TSFE:id这类变量不会被自动解析,必须通过data或stdWrap明确指定数据来源,以此保障配置的安全性和可预测性。
内容的提问来源于stack exchange,提问作者Uroš
相关产品推荐
相关产品推荐

