【发布时间】:2020-01-17 06:48:09
【问题描述】:
我正在使用 Hugo 的 IN 函数,它可以用作 in SET ITEM,定义在 Hugo Documentation for IN
我正在尝试通过以下代码过滤掉特定类别的帖子
{{ range where .Site.Pages "Section" "products"}}
{{ if in .Params.categories "New Arrival" }}
<li>{{ .Title }}</li>
{{end}}
{{end}}
上面的代码完全没问题。
但是如果我对ITEM 使用变量而不是字符串。它总是返回False。
{{ $display_product_cat := "New Arrival" }}
{{ range where .Site.Pages "Section" "products"}}
{{ if in .Params.categories $display_product_cat }}
<li>{{ .Title }}</li>
{{end}}
{{end}}
上面的代码没有按预期工作。
想知道我是否在这里遗漏了什么。感谢您的时间和帮助。
【问题讨论】:
-
“ITEM 总是返回 false”是什么意思?您的代码中没有任何名为 ITEM 的内容,也没有返回布尔值...您到底看到什么是“假”?
-
@flimzy 感谢您的回复。但是ITEM是指IN函数的第二个参数。当我在代码的第一个 sn-p 中使用 in 函数时,我使用字符串作为第二个参数。但是在第二个 sn-p 中,我使用一个变量作为第二个参数。由于某种原因,这不起作用。
-
在什么情况下不起作用?你看到了什么输出或错误?
-
@Flimzy,它没有给出任何错误,构建工作正常。但是对于上面的代码,第二个 sn-p
if in .Params.categories $display_product_cat必须是TRUE但它总是返回'FALSE' . -
这听起来很像您的
.Params.categories列表不包含"New Arrival",而且您的代码实际上正在运行。
标签: go hugo go-templates