Cette extension créera automatiquement des plans de site XML pour vos sites Bolt. Après avoir activé l'extension, accédez à http://example.org/sitemap.xml
pour la voir.
Les plus gros moteurs de recherche comme Google et Bing récupéreront automatiquement votre plan de site après un certain temps, mais c'est toujours une bonne idée d'indiquer explicitement aux moteurs de recherche où le trouver. Pour ce faire, cette extension ajoute automatiquement le lien vers la section <head>
de vos pages :
< link rel =" sitemap " type =" application/xml " title =" Sitemap " href =" /sitemap.xml " />
En dehors de cela, il est recommandé d'ajouter également la ligne suivante à votre fichier robots.txt
:
Sitemap: http://example.org/sitemap.xml
Évidemment, vous devez remplacer « exemple.org » par le nom de domaine de votre site Web.
Cette extension ajoute une « route » pour /sitemap.xml
et /sitemap
par défaut, mais sa priorité est inférieure aux routes définies par l'utilisateur.
Si vous utilisez la pagebinding
dans routing.yml
, ou tout autre itinéraire similaire qui correspondrait en premier au « plan du site », vous devrez ajouter ce qui suit au-dessus de cet itinéraire. Vous devez également le faire si vous disposez d'une extension susceptible de remplacer le routage par défaut, comme l'extension AnimalDesign/bolt-translate.
sitemap :
path : /sitemap
defaults : { _controller: sitemap.controller:sitemap }
sitemapXml :
path : /sitemap.xml
defaults : { _controller: sitemap.controller:sitemapXml }
Notez que si vous avez un ContentType avec la propriété searchable: false
, ce type de contenu sera ignoré.
Si vous disposez de votre propre extension groupée, vous pouvez ajouter, supprimer ou modifier des liens avant que le plan du site ne soit rendu. Vous devez vous abonner à l'événement SitemapEvents::AFTER_COLLECTING_LINKS
. L'objet que vous obtiendrez est une instance de la classe SitemapEvent
qui possède une méthode getLinks
qui renvoie un objet MutableBag
. Le dernier est une liste de liens sous forme de tableau. Voir exemple :
protected function subscribe ( $ dispatcher )
{
$ dispatcher -> addListener ( SitemapEvents :: AFTER_COLLECTING_LINKS ,
function ( $ event ) {
/** @var SitemapEvent $event */
$ links = $ event -> getLinks ();
$ links -> add ([
' link ' => ' /lorem-ipsum ' ,
' title ' => ' Hello World! ' ,
' depth ' => 1 ,
]);
}
);
}
Vous pouvez personnaliser le plan du site avec une feuille de style xslt si vous copiez le fichier templates/sitemap_xml.twig
et le fichier web/sitemap.xsl
dans votre répertoire de thème et en ajoutant la déclaration xsl-stylesheet après la déclaration xml afin que les deux premières lignes du themes/{yourthemename}/sitemap_xml.twig
ressemble à :
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
<? xml-stylesheet type = " text/xsl " href = " {{ paths.theme }}/sitemap.xsl " ?>