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

Grav CMS主博客页面如何在侧边栏遍历并输出所有标签?

解决Hugo侧边栏展示全站标签列表的问题

应该是你之前误用了单篇文章的上下文变量,才只能拿到当前文章的标签。别担心,用Hugo的全局分类数据就能轻松搞定全站标签的展示:

第一步:确认分类法配置正确

先检查user/config/site.yaml里的taxonomies配置,标签的定义要遵循Hugo的规范(单数键,复数值),比如:

taxonomies:
  tag: tags

第二步:在侧边栏模板中调用全站标签数据

找到你侧边栏对应的模板文件(比如layouts/partials/sidebar.html,或者博客列表页的模板),替换成下面的代码:

<div class="sidebar-tags">
  <h3>所有标签</h3>
  <ul>
    <!-- 按字母顺序遍历全站标签,也可以换成.ByCount按文章数量排序 -->
    {{ range site.Taxonomies.tags.Alphabetical }}
      <li>
        <a href="{{ .Page.RelPermalink }}">
          {{ .Page.Title }} ({{ .Count }})
        </a>
      </li>
    {{ else }}
      <li>暂无标签</li>
    {{ end }}
  </ul>
</div>

关键说明

  • site.Taxonomies.tags:这是Hugo提供的全局变量,能获取全站所有标签的集合,而不是单篇文章的标签
  • .Alphabetical:让标签按字母顺序排列,换成.ByCount就能按标签下的文章数量排序(从多到少)
  • .Page.Title:标签的名称,Hugo会自动把标签名作为对应分类页面的标题
  • .Count:显示该标签关联的文章总数
  • .Page.RelPermalink:生成标签归档页面的链接,点击后能看到所有带该标签的文章

之前你只能拿到单篇文章的标签,应该是用了当前页面的.Params.tags变量,这个变量只能获取当前文章设置的标签,而不是全站的。现在换成全局的site.Taxonomies.tags就能展示所有标签啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:09:16