Shopify:如何根据集合添加类

时间:2015-05-13 11:32:45

标签: collections filtering shopify liquid

在客户主页上,他们希望“所有产品”在列表底部加载更多按钮。

有四个类别,每个类别都有不同的颜色。我希望按日期列出的顺序提取所有产品,并根据类别将类应用于产品。

目前我有

{% assign collection = collections.all %}
{% for product in collection.products %}
{% if collection.handle == 'clothing' %}
  <div class="theme-red overview-item">
{% elsif collection.handle == 'pictures' %}
  <div class="theme-green overview-item">
{% elsif collection.handle == 'posters' %}
  <div class="theme-blue overview-item">
{% elsif collection.handle == 'other' %}
  <div class="theme-beige overview-item">
{% else %}
  <div class="theme-none overview-item">
{% endif %}  
  ...
  </div>
{% endfor %}

目前这是主题 - 无,这是因为我正在调用collections.all?

如何在不管集合的情况下获取所有显示的产品,然后根据上述if / else语句应用某些内容。

任何想法,我都试着看看product.collections,collection.all_types是否没有幸福。

1 个答案:

答案 0 :(得分:0)

您获得theme-none的原因是因为您的if语句会检查该集合的处理方式是&#39;服装&#39;图片&#39;等但是你已经将集合设置为collections.all,因此它永远不会匹配任何条件。

您要做的是检查当前产品是否在其中一个集合中。例如:

{% assign collection = collections.all %}

{% for product in collection.products %}
  {% for c in product.collections %}
    {% if c.handle == 'clothing' %}
      {% assign theme = "red" %}
    {% elsif c.handle == 'pictures' %}
      {% assign theme = "green" %}
    {% elsif c.handle == 'posters' %}
      {% assign theme = "blue" %}
    {% elsif c.handle == 'other' %}
      {% assign theme = "beige" %}
    {% else %}
      {% assign theme = "none" %}
    {% endif %}  
  {% endfor %}

  <div class="theme-{{ theme }} overview-item">
    ...
  </div>
{% endfor %}