我试图建立一个"下一个/上一个"页面导航系统,用于linklist
。
以下代码按预期工作...除了链接列表的第一页和最后一页。我想要"上一个"第一页上显示不的按钮,以及"下一页"按钮不显示在最后一页上。
在第一页上,"上一页"按钮显示,并指向最后一页。
在最后一页,"下一页"按钮显示,但无处点。
我哪里错了?我唯一能想到的是,我没有给变量提供正确的类型(我对Liquid来说相对较新)。
{% comment %}
Get the linklist being passed, and the size of the linklist.
{% endcomment %}
{% assign thislinklist = __page-navigation-arrows %}
{% assign thislinklistSize = linklists[thislinklist].links | plus: 0 %}
{% comment %}
Finds the index of the current page in the linklist array, and saves it to compare to find previous and next pages.
{% endcomment %}
{% for link in linklists[thislinklist].links %}
{% if page.handle == link.handle %}
{% assign thisindex = forloop.index0 | plus: 0 %}
{% endif %}
{% endfor %}
{% comment %}
Saves details of the current page, and indexes of the previous and nex pages.
{% endcomment %}
{% assign thisname = page.title %}
{% assign thislink = page.url %}
{% assign thisindex = thisindex | plus: 0 %}
{% assign previndex = thisindex | minus: 1 %}
{% assign nextindex = thisindex | plus: 1 %}
{% comment %}
If it's not the last page in the linklist, save details of the next page. If not, assign a blank string (used later to hide the button).
{% endcomment %}
{% if previndex | plus: 0 > 0 %}
{% assign prevname = linklists[thislinklist].links[previndex].title %}
{% assign prevlink = linklists[thislinklist].links[previndex].url %}
{% else %}
{% assign prevname = '' %}
{% assign prevlink = '' %}
{% endif %}
{% comment %}
If it's not the first page in the linklist, save details of the previous page. If not, assign a blank string (used later to hide the button).
{% endcomment %}
{% if nextindex | plus: 0 < thislinklistSize | minus: 1 %}
{% assign nextname = linklists[thislinklist].links[nextindex].title %}
{% assign nextlink = linklists[thislinklist].links[nextindex].url %}
{% else %}
{% assign nextname = '' %}
{% assign nextlink = '' %}
{% endif %}
{% comment %}
Display the navigation.
{% endcomment %}
<div class="page-navigation-arrows">
{% comment %} Hide "Previous" if it's the first page {% endcomment %}
{% if prevlink != '' or blank %}
<a class="page-navigation-arrows__prev page-navigation-arrows__arrow" href="{{ prevlink }}" title="{{ prevname }}">
<img src="{{ 'page-navigation-prev.svg' | asset_url }}" alt="Previous Page">
</a>
{% endif %}
{% comment %} Hide "Next" if it's the last page {% endcomment %}
{% if nextlink != '' or blank %}
<a class="page-navigation-arrows__next page-navigation-arrows__arrow" href="{{ nextlink }}" title="{{ nextname }}">
<img src="{{ 'page-navigation-next.svg' | asset_url }}" alt="Next Page">
</a>
{% endif %}
</div>
答案 0 :(得分:1)
没时间对此进行测试,但我相信代码可以正常运行。
但有一些事情:
{% if nextlink != '' or blank %}
这不是有效的if
条件。它应该是:
{% if nextlink != '' or nextlink == blank %}
这也不是一个有效的if语句:
{% if previndex | plus: 0 > 0 %}
它始终返回true
。它应该成为:
{% assign previndex = previndex | plus: 0 %}
{% if previndex > 0 %}
...
{% endif %}
解决这些问题后,它应该正常运行。
答案 1 :(得分:1)
有一种简单的方法可以实现这一目标:
{%除非forloop.first%} 您之前链接的代码 {%endunless%}
{%除非forloop.last%} 您下一个链接的代码 {%endunless%}