ส่วนขยายนี้จะสร้างแผนผังเว็บไซต์ 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-stylesheet หลังการประกาศ xml ดังนั้นสองบรรทัดแรกของ themes/{yourthemename}/sitemap_xml.twig
มีลักษณะดังนี้:
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
<? xml-stylesheet type = " text/xsl " href = " {{ paths.theme }}/sitemap.xsl " ?>