سيقوم هذا الامتداد تلقائيًا بإنشاء خرائط مواقع 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 " ?>