在Shopify中使用带有集合的集合过滤标签

时间:2014-12-21 02:49:00

标签: tags shopify liquid

在Shopify中,我希望在没有产品的级别上提供标签,以便我可以使用标签过滤。

例如,在销售珠宝的网站上,这是层次结构:

level 0: homepage (rings, earrings, pendants, or the-john-smith-collection)

level 1: grid of top level collection (earrings, for example)

level 2: grid of sub-collection (model-123) of earrings 

level 3: grid of all earrings of model-123

level 4: product page for earring-xyz of model-123

据我所知,我可以通过3级标签进行过滤而不会出现问题,因为我正在查看某个类别中的一堆产品。

我的问题是 - 是否有任何方法可以访问第2级中每个模型(子集合)中所有产品的所有标签。我有一个包含一堆子集的集合,但是没有实际产品,但我希望能够按照这些子集合中所有产品的标签进行过滤,因此我可以执行以下操作:

From the homepage, select the "rings" collection

See the rings category - a grid of 20 different sub-collections

Have a side filter menu, from which I'm able to click "see only rings tagged with "amethyst"

Be taken to a grid of all products matching those tags 

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

不确定您是否仍在寻找此问题的答案,但这可以在Shopify中使用。

我最近遇到了Shopify的内置免费主题之一New Standard,可以在收藏页面下的自定义面板中找到,"显示按标签浏览& #34;

但是,我还在Shopify上找到了this article,它向您展示了如何在您自己的下拉列表中编程,可以按标签浏览。此代码仅在选择了一个集合后才能使用



<script>
  /* Product Tag Filters - Good for any number of filters on any type of collection pages */
  /* Brought to you by Caroline Schnapp */
  var collFilters = jQuery('.coll-filter');
  collFilters.change(function() {
    var newTags = [];
    collFilters.each(function() { 
      if (jQuery(this).val()) {
        newTags.push(jQuery(this).val());
      }
    });
    if (newTags.length) {
      var query = newTags.join('+');
      window.location.href = jQuery('{{ 'tag' | link_to_tag: 'tag' }}').attr('href').replace('tag', query);
    } 
    else {
      {% if collection.handle %}
      window.location.href = '/collections/{{ collection.handle }}';
      {% elsif collection.products.first.type == collection.title %}
      window.location.href = '{{ collection.title | url_for_type }}';
      {% elsif collection.products.first.vendor == collection.title %}
      window.location.href = '{{ collection.title | url_for_vendor }}';
      {% endif %}
    }
  });
</script>
&#13;
<div class="clearfix filter">
  <p>Browse by tag:</p>
  <select class="coll-filter">
    <option value="">All</option>
    {% for tag in collection.all_tags %}
    {% if current_tags contains tag %}
    <option value="{{ tag | handle }}" selected>{{ tag }}</option>
    {% else %}
    <option value="{{ tag | handle }}">{{ tag }}</option>
    {% endif %}
    {% endfor %}
  </select>
</div>
&#13;
&#13;
&#13;

祝你好运,我希望这对你有用!