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
相关产品推荐
相关产品推荐

