2016-09-20 3 views
1

Ich versuche, eine "Auch im Blog" Iteration von Blog-Posts zu erstellen. Ich freue mich, nur die neuesten Posts zu zeigen, kann aber nicht herausfinden, wie ich den aktuellen Beitrag, den der Benutzer von dieser Iteration aus betrachtet, ausschließen würde.Ähnliche Beiträge in Shopify anzeigen

Hier ist mein Code (vereinfacht):

{% 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 %} 

Antwort

1

Durch die aktuelle Seite Titel mit? Und prüfen, ob es den Titel des aktuellen Blogposts enthält.

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

In dem Fall, dass der aktuelle Artikel ist die zweite in der Schleife, hält dies die Schleife nach dem ersten Artikel . – jermainecraig

+0

Das ist seltsam, das 'unless'-Tag schlägt fehl, wenn es falsch ist, oder bricht aus der Schleife aus? – jrbedard

+0

Okay, also == anstatt "enthält" hat das Verhalten funktioniert! Seltsamerweise bricht das "Limit: 3" den Code nach der ersten Iteration, ohne dass es in Ordnung ist, aber natürlich zeigt es alle verbleibenden Posts. Irgendeine Idee warum? – jermainecraig

2

Wenn Sie auf einer Artikelseite sind Sie so etwas wie wollen würden:

{% 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

Kann nicht sagen, warum, aber das funktioniert nicht. – jermainecraig

+0

nur die Probe repariert. Ich hatte es hier direkt eingegeben, anstatt es zu testen. – bknights

Verwandte Themen