我正在尝试创建一个包含“changefreq”和“priority”的自定义Wagtail站点地图。默认值只是'lastmod'和'url'。
根据Wagtail文档(upvar),您可以通过在/wagtailsitemaps/sitemap.xml创建站点地图来覆盖默认模板
我做到了这一点。站点地图模板如下所示:
string trimleft $varRef \$
我在设置中添加了“wagtail.contrib.wagtailsitemaps”到我的安装应用程序。我修改了我的Page类以包含get_sitemap_urls函数,试图覆盖它。
proc bump varName {
upvar 1 $varName var
incr var
}
set x 10
# => 10
bump x
set x
# => 11
它仍然无效。我错过了别的什么吗? Wagtail文档不提供任何更多信息和Wagtail网上的其他文档非常轻松。任何帮助将不胜感激。
答案 0 :(得分:5)
我明白了。我在错误的班级里有这个功能。它需要在每个特定的Page类中显示在站点地图中,而不是在常规的BlockPage类中。如果需要,这也允许我为每个页面设置不同的优先级。
解决方案:
class HomePage(Page):
body = RichTextField(blank=True)
content_panels = Page.content_panels + [
FieldPanel('body', classname='full')
]
def get_sitemap_urls(self):
return [
{
'location': self.full_url,
'lastmod': self.latest_revision_created_at,
'changefreq': 'monthly',
'priority': 1
}
]
class AboutPage(Page):
body = RichTextField(blank=True)
content_panels = Page.content_panels + [
FieldPanel('body', classname='full')
]
def get_sitemap_urls(self):
return [
{
'location': self.full_url,
'lastmod': self.latest_revision_created_at,
'changefreq': 'monthly',
'priority': .5
}
]