Esta extensão criará automaticamente mapas de sites XML para seus sites Bolt. Depois de habilitar a extensão, acesse http://example.org/sitemap.xml
para vê-la.
Os maiores mecanismos de pesquisa, como Google e Bing, selecionarão automaticamente o mapa do seu site depois de um tempo, mas é sempre uma boa ideia informar explicitamente aos mecanismos de pesquisa onde encontrá-lo. Para fazer isso, esta extensão adiciona automaticamente o link à seção <head>
de suas páginas:
< link rel =" sitemap " type =" application/xml " title =" Sitemap " href =" /sitemap.xml " />
Além disso, é uma boa prática adicionar também a seguinte linha ao seu arquivo robots.txt
:
Sitemap: http://example.org/sitemap.xml
Obviamente, você deve substituir ‘example.org’ pelo nome de domínio do seu site.
Esta extensão adiciona uma 'rota' para /sitemap.xml
e /sitemap
por padrão, mas tem prioridade mais baixa do que as rotas definidas pelo usuário.
Se você usar o pagebinding
em routing.yml
ou qualquer rota semelhante que corresponda a 'sitemap' primeiro, será necessário adicionar o seguinte acima dessa rota. Você também deve fazer isso se tiver uma extensão que possa substituir o roteamento padrão, como a extensão AnimalDesign/bolt-translate.
sitemap :
path : /sitemap
defaults : { _controller: sitemap.controller:sitemap }
sitemapXml :
path : /sitemap.xml
defaults : { _controller: sitemap.controller:sitemapXml }
Observe que se você tiver um ContentType com a propriedade searchable: false
, esse tipo de conteúdo será ignorado.
Se você tiver sua própria extensão agrupada, poderá adicionar, remover ou alterar links antes que o mapa do site seja renderizado. Você precisa se inscrever no evento SitemapEvents::AFTER_COLLECTING_LINKS
. O objeto que você obterá é uma instância da classe SitemapEvent
que possui um método getLinks
que retorna um objeto MutableBag
. O último é uma lista de links semelhante a um array. Veja exemplo:
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 ,
]);
}
);
}
Você pode personalizar o mapa do site com uma folha de estilo xslt se copiar o arquivo templates/sitemap_xml.twig
e o arquivo web/sitemap.xsl
para o diretório do seu tema e adicionar a declaração xsl-stylesheet após a declaração xml para que as duas primeiras linhas do themes/{yourthemename}/sitemap_xml.twig
se parece com:
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
<? xml-stylesheet type = " text/xsl " href = " {{ paths.theme }}/sitemap.xsl " ?>