Hier zeige ich dir wie du deine News Beiträge automatisch in die Sitemap eintragen lassen kannst.
Voraussetzung ist, dass du bereits eine Sitemap erstellt hast. Falls nicht, schau bitte hier wie du eine Sitemap für deine TYPO3 Homepage erstellst.
plugin.tx_seo {
config {
xmlSitemap {
sitemaps {
pages {
config {
### Hier kannst du Doktypes ausschließen ###
excludedDoktypes = 3, 4, 5
### Hier kannst du Doktypes ausschließen ###
### Seiten ausschließen die auf no_index eingestellt sind ###
additionalWhere = AND (no_index = 0 OR no_follow = 0)
### Seiten ausschließen die auf no_index eingestellt sind ###
}
}
}
}
}
}
plugin.tx_seo.config {
xmlSitemap {
sitemaps {
news {
provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
config {
table = tx_news_domain_model_news
sortField = sorting
lastModifiedField = tstamp
### Die ID der Ordners in dem die News liegen ###
pid = 11
### Die ID der Ordners in dem die News liegen ###
recursive = 2
url {
### Die ID der Detailseite angeben ###
pageId = 3
### Die ID der Detailseite angeben ###
fieldToParameterMap {
uid = tx_news_pi1[news]
}
additionalGetParameters {
tx_news_pi1.controller = News
tx_news_pi1.action = detail
}
useCacheHash = 1
}
}
}
}
}
}
Wenn du nun den Cache geleert hast und deine Sitemap aufrufst, solltest du nun deine News finden.
Du kannst die Einträge auch erweitern. Nehmen wir mal an, du hast zwei Systemordner mit News Beiträgen und zwei Detailseiten.
Hier ein Beispiel:
plugin.tx_seo.config {
xmlSitemap {
sitemaps {
### Hier den gewünschten Namen eingeben ###
news {
### Hier den gewünschten Namen eingeben ###
provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
config {
table = tx_news_domain_model_news
sortField = sorting
lastModifiedField = tstamp
### Die ID der Ordners in dem die News liegen ###
pid = 11
### Die ID der Ordners in dem die News liegen ###
recursive = 2
url {
### Die ID der Detailseite angeben ###
pageId = 3
### Die ID der Detailseite angeben ###
fieldToParameterMap {
uid = tx_news_pi1[news]
}
additionalGetParameters {
tx_news_pi1.controller = News
tx_news_pi1.action = detail
}
useCacheHash = 1
}
}
}
### Hier den gewünschten Namen eingeben ###
webinare {
### Hier den gewünschten Namen eingeben ###
provider = TYPO3\CMS\Seo\XmlSitemap\RecordsXmlSitemapDataProvider
config {
table = tx_news_domain_model_news
sortField = sorting
lastModifiedField = tstamp
### Die ID der Ordners in dem die News liegen ###
pid = 12
### Die ID der Ordners in dem die News liegen ###
recursive = 2
url {
### Die ID der Detailseite angeben ###
pageId = 4
### Die ID der Detailseite angeben ###
fieldToParameterMap {
uid = tx_news_pi1[news]
}
additionalGetParameters {
tx_news_pi1.controller = News
tx_news_pi1.action = detail
}
useCacheHash = 1
}
}
}
}
}
}
Damit deine Einträge in der Sitemap als "Sprechende URL" angezeigt werden, erweitere in deiner Site Konfiguration die config.yaml um folgenden Code.
routeEnhancers:
#News
News:
type: Extbase
extension: News
plugin: Pi1
routes:
-
routePath: '/page-{page}'
_controller: 'News::list'
_arguments:
page: '@widget_0/currentPage'
-
routePath: '/{news-title}'
_controller: 'News::detail'
_arguments:
news-title: news
-
routePath: '/{category-name}'
_controller: 'News::list'
_arguments:
category-name: overwriteDemand/categories
-
routePath: '/{tag-name}'
_controller: 'News::list'
_arguments:
tag-name: overwriteDemand/tags
defaultController: 'News::list'
defaults:
page: '0'
aspects:
news-title:
type: PersistedAliasMapper
tableName: tx_news_domain_model_news
routeFieldName: path_segment
page:
type: StaticRangeMapper
start: '1'
end: '100'
category-name:
type: PersistedAliasMapper
tableName: sys_category
routeFieldName: slug
tag-name:
type: PersistedAliasMapper
tableName: tx_news_domain_model_tag
routeFieldName: slug
Bemerkungen :