如何使用Twig删除Stacey v3中第一页和最后一页上的上一个和下一个链接?

时间:2014-04-18 12:28:32

标签: templates hyperlink twig next

我正在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>: &rarr; {{ sibling.title }}</li>
{% endfor %}

previous-page.html

{% for sibling in page.previous_sibling %}
  <li><a href="{{ sibling.url }}" title="{{ sibling.title }}">Previous project</a>: &larr; {{ 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 %}

哪个不起作用,我对逻辑声音的理解也不是。

2 个答案:

答案 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>&nbsp;</p>
{% else %}
{% for sibling in page.next_sibling %}
  <p><a href="{{ sibling.url }}">Next project</a>: &rarr; {{ sibling.title }}</p>
{% endfor %}
{% endif %}

将templates / partials / previous-page.html的内容替换为:

{% if page.is_first %}
<p>&nbsp;</p>
{% else %}
{% for sibling in page.previous_sibling %}
  <p><a href="{{ sibling.url }}">Previous project</a>: &larr; {{ sibling.title }}</p>
{% endfor %}
{% endif %}