私は単純なifステートメントを書き込もうとしていますが、shopifyのシステムには常に苦労しています。
基本的に私はそれがこれをすることを望みます:
{%if collection.product =='廃止'%}この製品は廃止されました。{%endif%}
このコレクションに含まれている場合は、このtext/htmlを表示します。そうしないと、何も表示されません。これはproduct.liquidテンプレートにあります。
何か案は?
私は単純なifステートメントを書き込もうとしていますが、shopifyのシステムには常に苦労しています。
基本的に私はそれがこれをすることを望みます:
{%if collection.product =='廃止'%}この製品は廃止されました。{%endif%}
このコレクションに含まれている場合は、このtext/htmlを表示します。そうしないと、何も表示されません。これはproduct.liquidテンプレートにあります。
何か案は?
これが最終的に機能したものです。
{% for c in product.collections %}
{% if c.handle == "discontinued" %}
This product is Discontinued
{% endif %}
{% endfor %}
私はこれが誰にでも役立つと思います、私はshopifyウェブサイトのサイドバーで使用しました。現在のコレクションページは、以下のコードによってチェックされます。
<div class="row-fluid not-animated" data-animate="fadeInUp">
<div class="title">By Collections</div>
<form class="coll">
{% assign col_tags = collection.title %}
{% for collection in collections %}
<input type="radio" value="{{ collection.url }}" name="collections" {% if col_tags contains collection.title %} checked {% endif %} >{{ collection.title | escape }} <br/>
{% endfor %}
</form>
Shopifyで液体コレクションがどのように機能するかを理解している場合は、すべての製品を反復処理する必要があります。
コレクションを直接操作している場合は、これと同様のことを行う必要があります。
{% for product in collection.product %}
{% if product.tags contains 'discontinued' %}
This product has been discontinued :(
{% endif %}
{% endfor %}
単一の製品で作業している場合は、おそらく内側のif
液体タグ部分を使用できます。
参照:
実際、製造中止と呼ばれるコレクションに製造中止製品を追加することができます。
製品をレンダリングするときは、csaundersが提案するように、廃止されたコレクション内のすべての製品をループして、現在の製品のIDがそのコレクション内の製品のいずれかと一致するかどうかを確認できます。もしそうなら、あなたがしなければならないことをしてください。タグを使用する必要はありません。
のマップを使用して、製品のコレクションの配列を作成できますproduct.collections
。これにより、指定したプロパティ、つまり各コレクションのハンドルを使用して新しい配列が作成されます。
次に、この新しい配列contains
が操作するハンドルであるかどうかを確認できます。
{% assign productCollections = product.collections | map: "handle" %}
{% if productCollections contains 'your-collection-handle' %}
{% comment %} DoSomething {% endcomment %}
{% endif %}
だからあなたの例のために:
{% assign productCollections = product.collections | map: "handle" %}
{% if productCollections contains 'discontinued' %}
This product is Discontinued
{% endif %}
タイトルなど、ケースが異なる場合は、他のフィールドをマップできます。