【问题标题】:Shopify JSON type meta-field loop not workingShopify JSON 类型元字段循环不起作用
【发布时间】:2021-11-21 09:58:24
【问题描述】:

我正在使用内置元字段的 shopify 并将其类型设置为 JSON,但不知何故循环该值不起作用。

{
    "slides": [{
        "title": "Title 1",
        "description": "This is description body",
        "image": "https://cdn.shopify.com/s/files/"
    }, {
        "title": "Title 2",
        "description": "This is description body",
        "image": "https://cdn.shopify.com/s/files/"
    }]
}

上面是我设置的示例值,下面是代码,但它根本不起作用。

{% if product.metafields.spec.slider != blank %}
  <div class="grid">
    {% assign sliders = product.metafields.spec.slider %}

    {% for slider in sliders %}
      <div class="grid__item">
        <img src="{{ slides.image }}" alt="" />

        <h4>{{ slides.title }}</h4>
        <p>{{ slides.description }}</p>
      </div>
    {% endfor %}
  </div>
{% endif %}

【问题讨论】:

    标签: arrays json for-loop shopify liquid


    【解决方案1】:

    您需要使用 value 属性来获取 Metafield 的值。除此之外,您的循环变量只是混淆了。在您的 JSON 中,您有一个名为 slides 的顶级属性,它是一个对象数组。因此,您必须迭代 slides 属性而不是基本 JSON 值。

    这样做,您的代码将是

    {% if product.metafields.spec.slider.value != blank %}
        <div class="grid">
        {% assign slider = product.metafields.spec.slider.value %} 
        {% for slide in slider.slides %}
            <div class="grid__item">
                <img src="{{ slide.image }}" alt="" />
                <h4>{{ slide.title }}</h4>
                <p>{{ slide.description }}</p>
            </div>
        {% endfor %}
        </div>
    {% endif %}
    

    【讨论】:

      猜你喜欢
      • 2022-06-17
      • 1970-01-01
      • 2012-07-02
      • 2021-08-23
      • 1970-01-01
      • 2023-02-08
      • 2016-02-04
      • 2013-11-26
      • 1970-01-01
      相关资源
      最近更新 更多