Prev
Syntax
PAGES.Prev PAGE
Returns
hugolib.pageStates
Prev 方法和 Next 方法在 Pages 对象上的行为可能与您期望的相反。
假设有以下的内容结构,并且页面集合按权重升序排序:
content/
├── pages/
│   ├── _index.md
│   ├── page-1.md   <-- front matter: weight = 10
│   ├── page-2.md   <-- front matter: weight = 20
│   └── page-3.md   <-- front matter: weight = 30
└── _index.md
当您访问 page-2 时:
- Prev方法指向 page-3
- Next方法指向 page-1
{{ $pages := where .Site.RegularPages.ByWeight "Section" "pages" }}
{{ with $pages.Next . }}
  <a href="{{ .RelPermalink }}">上一页</a>
{{ end }}
{{ with $pages.Prev . }}
  <a href="{{ .RelPermalink }}">下一页</a>
{{ end }}
与 Page 方法对比
在 Pages 对象上,Next 和 Prev 方法比在 Page 对象上的 Next 和 Prev 方法更灵活。
| 页面集合 | 自定义排序顺序 | |
|---|---|---|
| PAGES.Next和PAGES.Prev | 本地定义 | ✔️ | 
| PAGE.Next和PAGE.Prev | 全局定义 | ❌ | 
- 本地定义
- 每次调用 PAGES.Next和PAGES.Prev时重新构建页面集合。在局部集合中,页面之间的导航与全局集合无关,相对于当前页面的位置。
在本地集合中,导航排序顺序与集合排序顺序相同。
- 全局定义
- 在列表页面上一次性构建页面集合。在全局集合中,页面之间的导航与当前页面在全局集合内的位置相关。
在全局集合中,导航排序顺序是固定的,使用 Hugo 的默认排序顺序。按优先级排序如下:
例如,使用按标题排序的全局集合,导航排序顺序将使用 Hugo 的默认排序顺序。这可能不符合您的期望和需求。因此,一般而言,在 Pages 对象上使用 Next 和 Prev 方法是更好的选择。