首页 > 解决方案 > 如何将 Shopify 搜索输入限制为特定集合?

问题描述

我正在尝试进行搜索输入,该输入仅通过集合中的结果搜索/过滤。

这是搜索模板:

<div id="col-main" class="page-search">

{% if search.results_count == 0 or search.performed == false %}
  <h4 class="title">{{ 'search.general.heading' | t: count: search.results_count }}: {{ 'search.general.results_with_count' | t: terms: search.terms, count: search.results_count }}</h4>

  <form class="search-form" action="/search">
    <input type="hidden" name="type" value="product" />
    <input type="hidden" name="options[prefix]" value="last" />
    <input type="text" name="q" class="search_box" placeholder="{{settings.search_placeholder}}" value="{{ search.terms }}" />

    <button type="submit" class="search-submit" title="Search">
      {% if settings.search_icon_type == 'font-icon' %}
        <i class="demo-icon {{ settings.search_font_icon }}"></i>
      {% else %}
        <img src="{{ settings.search_icon | img_url: '20x' }}" alt="Search" />
      {% endif %}
    </button>
  </form>

{% else %}
  {% if search.performed %}
    {% paginate search.results by 16 %}

    <h4 class="title">{{ 'search.general.heading' | t: count: search.results_count }}: {{ 'search.general.results_with_count' | t: terms: search.terms, count: search.results_count }}</h4>

    <div class="cata-product cp-grid">
      {% for product in search.results %}
        {% if product.object_type == 'product' %}
          <div class="product-grid-item">
            {% include 'product-item' %}
          </div>
        {% else %}
          <div class="article-grid-item">
            {% include 'article-result' %}
          </div>
        {% endif %}
      {% endfor %}
    </div>

    {% if paginate.pages > 1 %}
      {% include 'pagination' %}
    {% endif %}

    {% endpaginate %}
  {% endif %}

{% endif %}

我将如何编辑它以仅搜索与“已使用”匹配的集合名称?

有一个shopify 集合对象,但不知道我是否应该尝试编辑:

<input type="text" name="q" class="search_box" placeholder="{{settings.search_placeholder}}" value="{{ search.terms }}" />

或搜索结果

{% for product in search.results %}

任何帮助将不胜感激,谢谢

标签: javascriptshopifyshopify-template

解决方案


获取所有结果,过滤,生成;问题是分页,我现在没有解决方案。

{% paginate search.results by search.results_count %}
  {% for item in search.results %}
    {% if item.object_type == 'product' %}
      {% for collection in item.collections %}
        {% if collection.title contains 'myCollectionTitle' %}
          {% assign image = item.featured_image | img_url: 'medium' %}
          
          <a href="{{item.url}}">{{item.title}} <img src="{{image}}" alt="" class="" loading="lazy" width="" height=""></a><br>
          {% endif %}
      {% endfor %}
    {% endif %}
  {% endfor %}  
{% endpaginate %}

推荐阅读