Это расширение автоматически создаст карты сайта XML для ваших сайтов Bolt. После включения расширения перейдите по адресу http://example.org/sitemap.xml
чтобы увидеть его.
Более крупные поисковые системы, такие как Google и Bing, через некоторое время автоматически получат вашу карту сайта, но всегда полезно явно указать поисковым системам, где ее найти. Для этого это расширение автоматически добавляет ссылку в раздел <head>
ваших страниц:
< link rel =" sitemap " type =" application/xml " title =" Sitemap " href =" /sitemap.xml " />
Кроме того, рекомендуется добавить в файл robots.txt
следующую строку:
Sitemap: http://example.org/sitemap.xml
Очевидно, вам следует заменить «example.org» доменным именем вашего сайта.
Это расширение по умолчанию добавляет «маршрут» для /sitemap.xml
и /sitemap
, но он имеет более низкий приоритет, чем маршруты, определяемые пользователем.
Если вы используете pagebinding
в routing.yml
или какой-либо аналогичный маршрут, который сначала соответствует «карте сайта», вам нужно будет добавить следующее над этим маршрутом. Вам также следует сделать это, если у вас есть расширение, которое может переопределять маршрутизацию по умолчанию, например расширение AnimalDesign/bolt-translate.
sitemap :
path : /sitemap
defaults : { _controller: sitemap.controller:sitemap }
sitemapXml :
path : /sitemap.xml
defaults : { _controller: sitemap.controller:sitemapXml }
Обратите внимание: если у вас есть ContentType со свойством searchable: false
, этот тип контента будет игнорироваться.
Если у вас есть собственное расширение, вы можете добавлять, удалять или изменять ссылки до отображения карты сайта. Вам необходимо подписаться на событие SitemapEvents::AFTER_COLLECTING_LINKS
. Объект, который вы получите, является экземпляром класса SitemapEvent
, который имеет метод getLinks
, возвращающий объект MutableBag
. Последний представляет собой список ссылок в виде массива. См. пример:
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 ,
]);
}
);
}
Вы можете настроить карту сайта с помощью таблицы стилей xslt, если скопируете файл templates/sitemap_xml.twig
и файл web/sitemap.xsl
в каталог вашей темы и добавив объявление таблицы стилей xsl после объявления xml, чтобы первые две строки файла themes/{yourthemename}/sitemap_xml.twig
выглядят так:
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
<? xml-stylesheet type = " text/xsl " href = " {{ paths.theme }}/sitemap.xsl " ?>