如何获取分类第一页参数,将首篇文章封面设为OpenGraph图片?
修改OG图片模板以在分类列表页使用分页首篇文章封面图
你需要调整原模板中.IsNode分支的逻辑,优先使用分页列表首篇文章的封面图,同时保留站点默认图作为降级方案。以下是修改后的完整代码:
{{ if .Params.cover_image }} <meta property="og:image" content="{{ .Params.cover_image }}"> {{ end }} {{ if .IsNode }} {{/* 优先使用分页首篇文章的封面图 */}} {{ if and (.Paginator.Pages) (index .Paginator.Pages 0).Params.cover_image }} <meta property="og:image" content="{{ (index .Paginator.Pages 0).Params.cover_image }}"> {{/* 如果分页无内容或首篇无封面图,降级使用站点默认图 */}} {{ else if .Site.Params.images }} <meta property="og:image" content="{{ index .Site.Params.images 0 }}"> {{ end }} {{ end }} {{ if and (.IsPage) (not .Params.images) (.Site.Params.images) }} <meta property="og:image" content="{{ index .Site.Params.images 0 }}"> {{ end }}
关键修改说明:
- 拆分原
.IsNode的判断逻辑,增加优先级层级:先检查分页列表是否有内容,且首篇文章存在cover_image字段,满足则输出该封面图;若不满足,再降级使用站点默认图片。 - 使用
index .Paginator.Pages 0获取分页列表的第一篇文章,再通过.Params.cover_image访问其封面图参数,这是Hugo模板访问数组元素的标准语法。
内容的提问来源于stack exchange,提问作者Michael Holland
相关产品推荐
相关产品推荐

