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