2016-09-20 108 views
1

我正在尝试创建一个“也在博客中”博客文章的迭代。我很高兴显示最新的帖子,但无法弄清楚我将如何排除用户从本次迭代中查看的当前帖子。在Shopify中显示相关文章

这里是我的代码(简化):

{% for article in blog.articles limit:3 %} 

    <div> 
    {{ article | img_url: '1024x1024' | img_tag: article.title }} 
    {{ article.excerpt }} 
    {{ article.content | strip_html | truncatewords: 20 }} 
    </div> 

{% endfor %} 

回答

1

通过使用当前页面的标题?并检查它是否包含当前博客文章的标题。

{% for article in blog.articles limit:3 %} 
    {% unless page_title contains article.title %} 
    <div> 
     ... 
    </div> 
    {% endunless %} 
{% endfor %} 
+0

在当前的文章是在环路第二的情况下,这将停止循环中的第一篇文章后, 。 – jermainecraig

+0

奇怪的是,'如果'标记失败,如果为false,或者从循环中突然出现? – jrbedard

+0

好吧,所以==而不是“包含”已得到行为工作!奇怪的是,“极限:3”在第一次迭代后破坏了代码,没有它很好,但是当然显示了所有剩余的帖子。任何想法为什么? – jermainecraig

2

如果你的文章页面上你想要的东西,如:

{% assign currentHandle = article.handle %} 
    {% assign articlesFound = 0 %} 
    {% for addin in blogs[blog.handle].articles %} 
     {% unless addin.handle == currentHandle %} 
     <div><a href="{{ addin.url }}">{{ addin.title }}</a></div> 
     {% assign articlesFound = articlesFound |plus: 1 %} 
     {% if articlesFound == 3 %}{% break %}{% endif %} 
     {% endunless %} 
    {% endfor %} 
+0

不能说为什么,但这不起作用。 – jermainecraig

+0

只是固定了样本。我直接在这里输入,而不是测试。 – bknights