HUGO 如何在条款页面内使用分页?
HUGO How to use pagination inside terms page?
我正在尝试在条款页面内使用分页(例如 /layouts/tags/terms.html
),因为我有很多标签。
而且我还想显示我所有按受欢迎程度排序的标签。对于最后一点,我做了:
{{ range .Data.Terms.ByCount}}
...
{{ end }}
而且效果很好。
我试过了:
1)
{{ range .Data.Terms.ByCount}}
{{ range .Paginator.Pages }}
...
{{ end }}
{{ end }}
但我收到“无法评估 hugolib.OrderedTaxonomyEntry 类型的字段分页器”错误。
2)
{{ range .Paginator.Pages }}
{{ range .Data.Terms.ByCount}}
...
{{ end }}
{{ end }}
我没有错误,但没有显示任何帖子,只有分页。
3)
{{ $paginator := .Paginate .Data.Terms.ByCount }}
{{ range $paginator.Pages }}
...
{{ end }}
我得到:“调用分页时出错:无法将类型 hugolib.OrderedTaxonomy 转换为页面”错误。
我尝试了很多其他方法,但我无法弄清楚如何在我的分类 terms.html
页面中使用分页按受欢迎程度显示我的所有帖子。
你有更多想法吗?
在您的 terms.html
页面中输入以下代码。应该可以。
{{ range .Paginator.Pages }}
{{ .Title }}: {{ .RelPermalink }}
{{ end }}
但是既然你想对它进行排序,你可能需要这样的东西。
{{ range .Paginator.Pages.ByDate }}
{{ .Title }}: {{ .RelPermalink }}
{{ end }}
您可以使用其他参数进行排序。查看完整列表 here.
您想按受欢迎程度排序。我不确定您如何定义受欢迎程度。但是如果 popularity
是一个 front matter 变量,你可以用下面的方法对其进行排序。
{{ range (.Pages.ByParam "popularity") }}
<!-- ... -->
{{ end }}
我从别处得到了答案;它是:
{{ $topaginate := slice }}
{{ range $k, $v := .Data.Terms.ByCount}}
{{ $topaginate = $topaginate | append (site.GetPage (print $.Data.Plural "/" $v.Term )) }}
{{ end }}
{{ range (.Paginate $topaginate).Pages }}
{{ . }}
{{ end }}
我正在尝试在条款页面内使用分页(例如 /layouts/tags/terms.html
),因为我有很多标签。
而且我还想显示我所有按受欢迎程度排序的标签。对于最后一点,我做了:
{{ range .Data.Terms.ByCount}}
...
{{ end }}
而且效果很好。
我试过了:
1)
{{ range .Data.Terms.ByCount}}
{{ range .Paginator.Pages }}
...
{{ end }}
{{ end }}
但我收到“无法评估 hugolib.OrderedTaxonomyEntry 类型的字段分页器”错误。
2)
{{ range .Paginator.Pages }}
{{ range .Data.Terms.ByCount}}
...
{{ end }}
{{ end }}
我没有错误,但没有显示任何帖子,只有分页。
3)
{{ $paginator := .Paginate .Data.Terms.ByCount }}
{{ range $paginator.Pages }}
...
{{ end }}
我得到:“调用分页时出错:无法将类型 hugolib.OrderedTaxonomy 转换为页面”错误。
我尝试了很多其他方法,但我无法弄清楚如何在我的分类 terms.html
页面中使用分页按受欢迎程度显示我的所有帖子。
你有更多想法吗?
在您的 terms.html
页面中输入以下代码。应该可以。
{{ range .Paginator.Pages }}
{{ .Title }}: {{ .RelPermalink }}
{{ end }}
但是既然你想对它进行排序,你可能需要这样的东西。
{{ range .Paginator.Pages.ByDate }}
{{ .Title }}: {{ .RelPermalink }}
{{ end }}
您可以使用其他参数进行排序。查看完整列表 here.
您想按受欢迎程度排序。我不确定您如何定义受欢迎程度。但是如果 popularity
是一个 front matter 变量,你可以用下面的方法对其进行排序。
{{ range (.Pages.ByParam "popularity") }}
<!-- ... -->
{{ end }}
我从别处得到了答案;它是:
{{ $topaginate := slice }}
{{ range $k, $v := .Data.Terms.ByCount}}
{{ $topaginate = $topaginate | append (site.GetPage (print $.Data.Plural "/" $v.Term )) }}
{{ end }}
{{ range (.Paginate $topaginate).Pages }}
{{ . }}
{{ end }}