此擴充功能將自動為您的 Bolt 網站建立 XML 網站地圖。啟用擴充後,請造訪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
新增“路由”,但其優先權低於使用者定義的路由。
如果您在routing.yml
中使用pagebinding
,或任何先符合「sitemap」的類似路由,則需要在該路由上方新增下列內容。如果您有可能覆寫預設路由的擴充(例如 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
類別的實例,該類別具有傳回MutableBag
物件的getLinks
方法。最後一個是一個類似數組的連結列表。請參閱範例:
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 ,
]);
}
);
}
如果將templates/sitemap_xml.twig
檔案和web/sitemap.xsl
檔案複製到主題目錄,並在 xml 宣告後新增 xsl-stylesheet 聲明,則可以使用 xslt 樣式表自訂網站地圖,以便在前兩行themes/{yourthemename}/sitemap_xml.twig
看起來像:
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
<? xml-stylesheet type = " text/xsl " href = " {{ paths.theme }}/sitemap.xsl " ?>