Spec-Zone.ru › Wagtail 3

Генератор sitemap

В данном документе описывается, как создать XML-sitemap для вашего сайта Wagtail с использованием модуля wagtail.contrib.sitemaps.

Примечание

Начиная с Wagtail 1.10 для генерации sitemap используется приложение Django contrib sitemap. Однако, поскольку Wagtail требует, чтобы экземпляр Site был доступен во время генерации sitemap, вам необходимо использовать представления из модуля wagtail.contrib.sitemaps.views вместо представлений Django (django.contrib.sitemaps.views).

Использование этих представлений в остальном идентично, что означает, что настройка и кэширование sitemap выполняются с использованием стандартных шаблонов Django. Для получения подробной информации см. документацию Django.

Базовая настройка

Сначала вам нужно добавить "django.contrib.sitemaps" в INSTALLED_APPS в вашем файле настроек Django:

INSTALLED_APPS = [
    ...

    "django.contrib.sitemaps",
]

Затем в urls.py, вам необходимо добавить ссылку на представление wagtail.contrib.sitemaps.views.sitemap, которое генерирует 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 и увидеть работающий sitemap. По умолчанию, все опубликованные страницы вашего сайта будут добавлены в sitemap.

Настройка хост-имени

По умолчанию sitemap использует хост-имя, определённое в разделе Sites административной панели Wagtail. Если ваш сайт называется localhost, то URL-адреса в sitemap будут выглядеть следующим образом:

<url>
    <loc>http://localhost/about/</loc>
    <lastmod>2015-09-26</lastmod>
</url>

Для правильной индексации вашего сайта инструментами, такими как Google Search Tools, необходимо установить действительное и индексируемое хост-имя. Если вы измените хост-имя сайта с localhost на mysite.com, sitemap.xml будет содержать корректные URL-адреса:

<url>
    <loc>http://mysite.com/about/</loc>
    <lastmod>2015-09-26</lastmod>
</url>

Если вы измените порт сайта на 443, будет использоваться схема https. Подробнее об использовании моделей сайтов см. в работе с сайтами.

Настройка

URL-адреса

Класс Page определяет метод get_sitemap_urls, который можно переопределить для настройки sitemap для каждого экземпляра Page. Этот метод должен принимать объект запроса и возвращать список словарей, по одному словарю на каждую запись URL-адреса в sitemap. Для исключения страниц из sitemap верните пустой список.

Каждый словарь может содержать следующее:

  • location (обязательно) - Это полный путь к URL-адресу, который нужно добавить в sitemap.
  • lastmod - Дата или время Python, указывающие на последнюю модификацию страницы.
  • changefreq
  • priority

Можно добавить больше, но вам потребуется переопределить шаблон sitemap.xml для того, чтобы они отображались в sitemap.

Отображение нескольких sitemap

Если вы хотите поддерживать индексы sitemap от 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/stable/reference/contrib/sitemaps.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API