You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hugo调用Section页面报错参数不匹配,原有可用代码失效如何解决?

问题原因
  1. 第一个报错是因为ByTitle是Hugo页面集合的内置排序方法,本身不接受任何参数,你将筛选section的参数错误传给了ByTitle,触发参数数量不匹配的错误。
  2. 第二个报错是因为where筛选函数要求至少传入3个参数:待筛选的页面集合、筛选字段名、字段匹配值,你仅传入了页面集合1个参数,不符合函数要求。
  3. 同一段代码在header.html中可以正常运行,大概率是你在header中写的代码顺序正确:先调用where筛选出products分区的页面,再调用ByTitle排序,而非把筛选参数传给排序方法。
修复方案

调整代码逻辑顺序:先筛选products分区的页面,再对筛选结果按标题排序,渲染时直接遍历已经筛选+排序好的集合即可,不需要二次调用where。
修正后的完整代码片段如下:

{{define "main"}}
{{/* 先筛选products分区页面,再按标题排序 */}}
{{ $products := (where .Site.RegularPages "Section" "products").ByTitle }}
{{with .Params.banner}}
[...]
              <div class="dropdown-menu">
                  {{/* 直接遍历处理好的集合,不需要再加where */}}
                  {{ range $products }}
                    <a class="dropdown-item " href="{{ .Permalink }}">{{ .Title }}</a>
                  {{ end }}
[...]

内容的提问来源于stack exchange,提问作者gwizzo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 05:15:03