我有一个开关,想为分类法添加一个if
语句,但是不知道如何调用它?我试过.IsTaxonomy
是否出现错误...
{{ if eq .Type "blog" }}
{{ .Title }}
{{ end }}
{{ if eq .Type "help" }}
{{ .Title }}
{{ end }}
{{ if eq .Type "reviews" }}
{{ .Title }}
{{ end }}
{{ if .IsHome }}
home
{{ else if eq .Type "page" }}
{{ .Title }}
{{ end }}
答案 0 :(得分:3)
我有一个开关,想为分类法添加if语句,但不知道如何调用它?我试过如果是.IsTaxonomy但出现错误...
您在if语句中使用的.Type
变量是Hugo从内容文件夹(更确切地说是该部分)获取的变量。因此,您存储在/content/tutorial/
中的帖子的类型为tutorial
。您还可以手动设置内容的类型。但是.Type
默认情况下不等于内容的分类法。
一种替代方法是使用Hugo的.IsNode
page variable -当当前页面是列表页面时,它总是返回true
。也就是说,页面中包含来自某个分类法或部分的帖子。
您可以检查页面的.RelPermalink
变量以查看当前页面是否包含某些分类名称(例如"reviews"
)。但是我建议不要这样做,因为这不是一个好习惯。您所做的任何分类更改或新分类都意味着您的主题代码需要更改。此外,它还要求您(或您的用户)不要对分类法名称犯任何拼写错误,否则主题的代码会中断。
如果我查看您的if语句代码,则以下内容似乎与您要执行的操作等效:
{{ if .IsNode }}
<!-- Taxonomy and section list pages -->
{{ .Title }}
{{ else if .IsPage }}
<!-- Content pages -->
{{ else if .IsHome }}
<!-- Homepage -->
home
{{ else }}
<!-- All other pages, like the 404 page -->
{{ end }}