Ich versuche, eine benutzerdefinierte Bachstel-Sitemap zu erstellen, die "Changefreq" und "Priorität" enthält. Der Standard ist nur 'lastmod' und 'url'.Benutzerdefinierte Bachstelze Sitemap
Nach Bachstelze docs (http://docs.wagtail.io/en/latest/reference/contrib/sitemaps.html) können Sie die Standardvorlage überschreiben, indem Sie eine Sitemap an /wagtailsitemaps/sitemap.xml Schaffung
ich dies getan habe. Die Sitemap-Vorlage sieht wie folgt aus:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
{% spaceless %}
{% for url in urlset %}
<url>
<loc>{{ url.location }}</loc>
{% if url.lastmod %}<lastmod>{{ url.lastmod|date:"Y-m-d" }} </lastmod>{% endif %}
{% if url.changefreq %}<changefreq>{{ url.changefreq }}</changefreq>{% endif %}
{% if url.priority %}<priority>{{ url.priority }}</priority>{% endif %}
</url>
{% endfor %}
{% endspaceless %}
</urlset>
Ich habe hinzugefügt „wagtail.contrib.wagtailsitemaps“, zu meiner installierten Anwendungen in Einstellungen. Ich habe meine Page-Klasse so geändert, dass sie die Funktion get_sitemap_urls enthält, um sie zu überschreiben.
class BlockPage(Page):
author = models.CharField(max_length=255)
date = models.DateField("Post date")
body = StreamField([
('heading', blocks.CharBlock(classname='full title')),
('paragraph', blocks.RichTextBlock()),
('html', blocks.RawHTMLBlock()),
('image', ImageChooserBlock()),
])
search_fields = Page.search_fields + (
index.SearchField('heading', partial_match=True),
index.SearchField('paragraph', partial_match=True),
)
content_panels = Page.content_panels + [
FieldPanel('author'),
FieldPanel('date'),
StreamFieldPanel('body'),
]
def get_sitemap_urls(self):
return [
{
'location': self.full_url,
'lastmod': self.latest_revision_created_at,
'changefreq': 'monthly',
'priority': .5
}
]
Es funktioniert immer noch nicht. Vermisse ich etwas anderes? Die Bachstelze Dokumentationen bieten keine weiteren Informationen und andere Dokumentation im Web auf Bachstelze ist sehr leicht. Jede Hilfe wäre willkommen.