Sitemap providers
To localize the sitemap of a site, so-called "sitemap providers" are available. These are executed one after the other (depending on priority) to localize XML sitemaps according to certain criteria.
- interface ProviderInterface
-
- Fully qualified name
-
\Elias
Haeussler\ Typo3Warming\ Sitemap\ Provider\ Provider Interface
Interface for sitemap providers used to locate the path to an XML sitemap of a given site.
- get ( $site, $siteLanguage = null)
-
Locate the XML sitemap path of the given site.
- param TYPO3\\CMS\\Core\\Site\\Entity\\Site $site
-
The site whose XML sitemap path should be located.
- param TYPO3\\CMS\\Core\\Site\\Entity\\SiteLanguage $siteLanguage
-
An optional site language to include while locating the XML sitemap path.
- Returns
-
An instance of eliashaeussler-typo3warming-sitemap-siteawaresitemap or
null.
Default providers
By default, the path to an XML sitemap is determined in three steps:
-
Site configuration
Within the Sites module, one can explicitly define the path to the XML sitemap of a site.
-
robots.txt If no path is defined in the site configuration, a possible
robots.file is parsed for a validtxt Sitemapspecification. Read more at sitemaps.org.Note
Only the first occurrence will be respected. In the following example, the resulting sitemap is
https://.www. example. com/ our- sitemap. xml User-agent: * Disallow: /tmp/ Sitemap: https://www.example.com/our-sitemap.xml Sitemap: https://www.example.com/our-other-sitemap.xmlCopied! -
Default path
If none of the above methods are successful, the default path
sitemap.is used.xml
Implement a custom provider
To develop your own sitemap provider, it is only necessary to
implement the \EliasHaeussler\Typo3Warming\Sitemap\Provider\ProviderInterface.
In addition, the get method must be used to define
when the provider is executed.
The order of the providers provided by default is as follows:
| Sitemap provider | Priority |
|---|---|
| eliashaeussler-typo3warming-sitemap-provider-siteprovider | 200 |
| eliashaeussler-typo3warming-sitemap-provider-robotstxtprovider | 100 |
| eliashaeussler-typo3warming-sitemap-provider-defaultprovider | PHP_ | |
Once your custom provider is ready, make sure to clear the DI caches in order to rebuild the service container properly.
See also
View the sources on GitHub: