我正在Stacey v3中编辑project.html
模板,其下一个和之前的链接是由:
{% include 'partials/next-page.html' %}
和
{% include 'partials/previous-page.html' %}
在next-page.html
:
{% for sibling in page.next_sibling %}
<li><a href="{{ sibling.url }}" title="{{ sibling.title }}">Next project</a>: → {{ sibling.title }}</li>
{% endfor %}
在previous-page.html
:
{% for sibling in page.previous_sibling %}
<li><a href="{{ sibling.url }}" title="{{ sibling.title }}">Previous project</a>: ← {{ sibling.title }}</li>
{% endfor %}
他们工作正常,他们完成工作,对我来说问题是在第一个项目页面上,它有一个链接到前一页,如<li><a href="" title="">Previous project</a>: ← </li>
,无处可去。
在项目的最后一页上创建<li><a href="" title="">Next project</a>: → </li>
这些我不想要的死链接,它们会产生误导和毫无意义。
所以我试图摆脱他们的逻辑,如果是第一页,不生成上一个链接,并在最后一页上不生成下一个链接
我曾经尝试过这样的事情:
{% for sibling in page.siblings %}
{% if loop.first == False %}
Nothing should be generated
{% else %}
{% include 'partials/next-page.html' %}
{% endif %}
{% endfor %}
哪个不起作用,我对逻辑声音的理解也不是。
答案 0 :(得分:0)
实际上我认为你正在做与你想要的相反的事情:
{% if loop.first == False %}
Nothing should be generated
你应该做的
{% if loop.first %}
Nothing should be generated
当循环是第一个循环时,您希望它应用。
更新:请改为尝试:
{% for sibling in page.siblings %}
{% if sibling is null %}
Nothing should be generated
{% else %}
{% include 'partials/next-page.html' %}
{% endif %}
{% endfor %}
第二次更新:似乎存在后端概念问题......如果页面不存在,则应该呈现null。在这里,似乎呈现一个具有空属性(url,title ...)的页面对象。 它应该是固定的。现在,这可以解决这个问题吗?
{% for sibling in page.siblings %}
{% if (sibling.url is null) or (sibling.url is empty) %}
Nothing should be generated
{% else %}
{% include 'partials/next-page.html' %}
{% endif %}
{% endfor %}
答案 1 :(得分:0)
将templates / partials / next-page.html的内容替换为:
{% if page.is_last %}
<p> </p>
{% else %}
{% for sibling in page.next_sibling %}
<p><a href="{{ sibling.url }}">Next project</a>: → {{ sibling.title }}</p>
{% endfor %}
{% endif %}
和
将templates / partials / previous-page.html的内容替换为:
{% if page.is_first %}
<p> </p>
{% else %}
{% for sibling in page.previous_sibling %}
<p><a href="{{ sibling.url }}">Previous project</a>: ← {{ sibling.title }}</p>
{% endfor %}
{% endif %}