Hugoのテーマ PaperMod の記事一覧画面での並び順を、最終更新日の新しい順・降順に変更する方法を紹介する。このブログのように同じ記事に追記する形で更新することが多い場合、最新の状態を表すには記事の投稿日よりも最終更新日のほうが適しているからだ。
動作環境
- Windows 11 / Git Bash
- Hugo v0.164.0 / 標準ビルドでも動作可能
- PaperMod v8.0 / 執筆時点の最新コミットを使用
$ hugo version
hugo v0.164.0-ce2470e7012b5ab5fc4e10ebe4027e9f8d9e00dc+extended windows/amd64 BuildDate=2026-07-06T16:39:30Z VendorInfo=gohugoio
$ cd themes/PaperMod && git log -1 --oneline
154d006 (HEAD -> master, origin/master, origin/HEAD) style(post-single): adjust padding for details summary element
導入手順
1. カスタムレイアウトを追加
themes/PaperMod/layouts/list.html をコピーして layouts/list.html を作成する。
2. 最終更新日の新しい順にソートする処理を追加
カスタムレイアウトに以下のハイライト部分・最終更新日の新しい順にソートする処理を追加する。
{{- if .IsHome }}
{{- $pages = where site.RegularPages "Type" "in" site.Params.mainSections }}
{{- $pages = where $pages "Params.hiddenInHomeList" "!=" "true" }}
{{- end }}
{{- $pages = $pages.ByLastmod.Reverse }}
{{- $paginator := .Paginate $pages }}
3. 確認
hugo server で開発サーバーを立ち上げて確認する。
記事一覧画面で並び順が更新日順になっていればOK。
更新日が見た目で分かったほうが良いと言う場合は Hugo Papermodで記事の最終更新日を表示する の記事を参考に更新日の表示を追加するとよい。