我研究了一下,但找不到合适的解决方案。问题很简单,我们只需要为我们的自定义博客页面输出一个 RSS 提要。我们有一个博客页面,子页面可以说是实际的博客记录——其他外围系统需要这种结构。现在我的问题是 TYPO3 中为每个子页面实际生成 RSS 提要的方法是什么?
任何帮助深表感谢
plugin.tx_seo {
view {
templateRootPaths {
20 = EXT:ds_site/Resources/Private/Templates/Sitemaps/
}
}
config {
xmlSitemap {
sitemaps {
rssFeedAllBlogPosts {
provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
config {
table = pages
sortField = tstamp
lastModifiedField = tstamp
additionalWhere = AND (no_index = 0 OR no_follow = 0)
pid = 2
recursive = 3
template = RssFeed
}
}
}
}
}
}
version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Daniel Siepmann - Coding is Art</title>
<description>List of blog posts at daniel-siepmann.de</description>
<link>{f:uri.page(pageUid: 1, absolute: 1)}</link>
<atom:link href="{f:uri.page(pageUid: 1. pageType: 1533906435, additionalParams: {sitemap: 'rssFeedAllBlogPosts'}, absolute: 1)}" rel="self" type="application/rss+xml" />
<lastBuildDate>{f:format.date(date: 'now', format: 'D, d M Y H:i:s O')}</lastBuildDate>
<ttl>1800</ttl>
<f:for each="{items}" as="item">
<f:if condition="{item.data.doktype} < 200">
{f:render(section: 'Item', arguments: {
item: item.data
})}
</f:if>
</f:for>
</channel>
</rss>
<f:section name="Item">
<item>
<title>{item.title}</title>
<description>{item.abstract}</description>
<link>{f:uri.page(pageUid: item.uid, absolute: 1)}</link>
<pubDate>{f:format.date(date: item.lastUpdated, format: 'D, d M Y H:i:s O')}</pubDate>
<guid isPermaLink="true">{f:uri.page(pageUid: item.uid, absolute: 1)}</guid>
</item>
</f:section>
您可以将此作为参考实现。这就是我用于我的网站的内容。当然你需要相应地调整它,例如pid
可能不同,以及扩展键ds_site
等。
还要注意,这个使用 EXT:seo,一个 TYPO3 的系统扩展,提供站点地图功能。
您可以链接到提要:<a href="{f:uri.page(pageUid: 1, pageType: 1533906435, additionalParams: {sitemap: 'rssFeedAllBlogPosts'})}">RSS Feed</a>
。
此外,您可能想调整 url 路由:
routeEnhancers:
PageTypeSuffix:
type: PageType
default: .html
map:
.xml: 1533906435
.html: 0
Feed:
type: Simple
limitToPages:
- 1
routePath: '/feed/{sitemap_id}'
requirements:
sitemap_id: '[a-zA-Z].*'
_arguments:
sitemap: sitemap_id