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

Hugo首页展示指定分类文章的实现方法咨询

在Hugo首页展示指定分类文章的解决方案

问题分析

你使用的intersect方法用于比较两个数组的交集,但如果文章的categories是字符串类型(比如categories: Motherboards),或是数组匹配逻辑有误,就会导致代码失效。以下是几种可靠的实现方案:

方案1:适配数组类型分类参数

如果文章Front Matter里的分类是数组形式(例如categories: ["Motherboards", "Hardware"]),可以用in操作符匹配:

{{ range where .Site.RegularPages "Params.categories" "in" (slice "Motherboards") }}
  <!-- 这里编写文章列表渲染代码,示例: -->
  <h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
  <p>{{ .Summary }}</p>
{{ end }}

方案2:兼容字符串/数组混合的分类参数

若部分文章分类是字符串(categories: Motherboards)、部分是数组,可通过自定义判断逻辑兼容两种格式:

{{ range .Site.RegularPages }}
  {{ if or (eq .Params.categories "Motherboards") (in .Params.categories "Motherboards") }}
    <h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
    <p>{{ .Summary }}</p>
  {{ end }}
{{ end }}

方案3:直接调用分类页面的文章集合

Hugo会自动为每个分类生成专属页面,直接调用对应分类的文章集合效率更高:

{{ with .Site.Taxonomies.categories.motherboards }}
  {{ range .Pages }}
    <h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
    <p>{{ .Summary }}</p>
  {{ end }}
{{ end }}

注意:这里的motherboards是分类名的小写形式,Hugo会自动将分类名转为小写,不受文章里的大小写写法影响。

常见排查要点

  • 核对文章Front Matter的分类字段:确认是categories(复数)还是category(单数),不少主题会采用单数形式。
  • 分类名大小写:Hugo分类默认大小写不敏感,但通过Taxonomies调用时需使用小写。
  • 确认文章是否在集合内:若文章是草稿状态(draft: true)或未发布,不会出现在RegularPages中,可改用.Site.Pages或在配置文件中设置buildDrafts: true。

内容的提问来源于stack exchange,提问作者Nedjma Média

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:07:12