如果分类法声明?

If statement for taxonomies?

我有一个开关,想为分类法添加一个 if 语句,但不知道如何调用它?我尝试了 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 }}

I have a switch and want to add an if statement for taxonomies but don't know how to call it? I tried if .IsTaxonomy but get an error...

您在 if 语句中使用的 .Type 变量是 Hugo 从内容文件夹(更准确地说是部分)中获取的内容。因此,您存储在 /content/tutorial/ 中的帖子将获得 tutorial 类型。您也可以手动设置一段内容的类型。但是 .Type 默认情况下不等于内容的分类法。

另一种方法是使用 Hugo 的 .IsNode page variable——当当前页面是列表页面时,它总是 returns 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 }}