TYPO3 v9 kann XML-Sitemaps von normalen Seiten sowie Plugins (z.B. news) erstellen.
Hierfür muss:
Die Liste aller Sitemaps kann dann unter dem folgenden typeNum
aufgerufen werden:
https://www.example.org/?type=1533906435
Derzeit werden in einer Sitemap die News-Datensätze mehrfach ausgegeben – einmal pro Sprache. (Stand: TYPO3 9.5.4; EXT:news 7.0.8). Die URL-Pfade sind dabei immer die der jeweils aktuellen Frontend-Sprache.
Mit additionalWhere
sowie einer Condition lässt sich das jedoch einfach lösen:
plugin.tx_seo { config { xmlSitemap { sitemaps { news { provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider config { table = tx_news_domain_model_news sortField = sorting lastModifiedField = tstamp // Workaround: Newsbeiträge auf aktuelle Frontend-Sprache begrenzen: additionalWhere = sys_language_uid = 0 recursive = 3 pid = 15 url { pageId = 9 fieldToParameterMap { uid = tx_news_pi1[news] } additionalGetParameters { tx_news_pi1.controller = News tx_news_pi1.action = detail } useCacheHash = 1 } } } } } } } // Anpassen für erste Fremdsprache: [siteLanguage("title") == "English"] plugin.tx_seo.config.xmlSitemap.sitemaps.news.config.additionalWhere = sys_language_uid = 1 [end]
Falls ein Routing Enhancer für PageType
angelegt wurde, werden die Links in der Sitemap-Liste nicht mehr richtig generiert: es fehlt der typeNum
-Parameter. Statt der jeweiligen Sitemap öffnet man die Startseite.
Um dies zu korrigieren, muss der typeNum
1533906435 in der config ergänzt werden:
routeEnhancers: PageTypeSuffix: type: PageType default: / map: /: 0 feed.rss: 9818 sitemap.xml: 1533906435