Генератор Sitemap
В данном документе описывается, как создавать XML-карты сайта для вашего сайта Wagtail с использованием модуля wagtail.contrib.sitemaps.
Примечание
Начиная с Wagtail 1.10, для генерации карт сайта используется приложение Django contrib sitemap. Однако, поскольку Wagtail требует, чтобы экземпляр Site был доступен во время генерации карты сайта, вам необходимо использовать представления из модуля wagtail.contrib.sitemaps.views вместо представлений, предоставляемых Django (django.contrib.sitemaps.views).
Использование этих представлений в остальном идентично, что означает, что настройка и кеширование карт сайта выполняются с использованием стандартных шаблонов Django. Подробная информация представлена в документации Django.
Основная настройка
В первую очередь, вам необходимо добавить "django.contrib.sitemaps" в INSTALLED_APPS в вашем файле настроек Django:
INSTALLED_APPS = [
...
"django.contrib.sitemaps",
]
Затем, в urls.py, необходимо добавить ссылку на представление wagtail.contrib.sitemaps.views.sitemap, которое генерирует карту сайта:
from wagtail.contrib.sitemaps.views import sitemap
urlpatterns = [
...
path('sitemap.xml', sitemap),
...
# Ensure that the 'sitemap' line appears above the default Wagtail page serving route
re_path(r'', include(wagtail_urls)),
]
Теперь вы можете перейти по адресу /sitemap.xml и увидеть, что карта сайта работает. По умолчанию все опубликованные страницы вашего сайта будут добавлены в карту сайта.
Установка хост-имени
По умолчанию карта сайта использует хост-имя, определенное в разделе Sites админки Wagtail. Если ваш основной сайт называется localhost, то адреса в карте сайта будут выглядеть следующим образом:
<url>
<loc>http://localhost/about/</loc>
<lastmod>2015-09-26</lastmod>
</url>
Для того, чтобы инструменты, такие как Google Search Console, правильно индексировали ваш сайт, необходимо установить действительное и индексируемое хост-имя. Если вы измените хост-имя сайта с localhost на mysite.com, в sitemap.xml будут содержаться правильные адреса:
<url>
<loc>http://mysite.com/about/</loc>
<lastmod>2015-09-26</lastmod>
</url>
Если вы измените порт сайта на 443, будет использоваться схема https. Узнайте больше о работе с сайтами.
Настройка
URL-адреса
Класс Page определяет метод get_sitemap_urls, который вы можете переопределить, чтобы настроить карты сайта для каждого экземпляра Page. Этот метод должен принимать объект запроса и возвращать список словарей, по одному словарю на каждый элемент URL-адреса в карте сайта. Вы можете исключить страницы из карты сайта, вернув пустой список.
Каждый словарь может содержать следующее:
- location (обязательно) - Это полный путь к URL-адресу, который нужно добавить в карту сайта.
- lastmod - Дата или время Python, установленное на момент последнего изменения страницы.
- changefreq
- priority
Вы можете добавить больше, но вам необходимо будет переопределить шаблон sitemap.xml для их отображения в карте сайта.
Отображение нескольких карт сайта
Если вы хотите поддерживать индексы карт сайта из Django, вам необходимо использовать представление индекса из wagtail.contrib.sitemaps.views вместо представления индекса из django.contrib.sitemaps.views. Подробности можно найти в документации Django.
© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/v2.16.3/reference/contrib/sitemaps.html