この拡張機能は、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」を Web サイトのドメイン名に置き換える必要があります。
この拡張機能は、デフォルトで/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
イベントをサブスクライブする必要があります。取得するオブジェクトは、 MutableBag
オブジェクトを返すgetLinks
メソッドを持つSitemapEvent
クラスのインスタンスです。最後のものは、配列のようなリンクのリストです。例を参照してください:
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 " ?>