通过链接列表访问Shopify集合元字段

时间:2018-11-28 19:01:31

标签: html for-loop metadata shopify liquid

我希望显示一个自定义字段(使用应用程序Shopify自定义字段)以显示除集合图像以外的其他图像(由于写的时间太长,我们无法使用集合图像)。现在,在此处使用自定义字段,该字段是文本字段(作为我们要使用的图像的绝对URL),位于

<img src="{{ collection.metafields.custom_fields["collection_list_image_url"] }}" alt="{{ link.title }}"/>

要获得正常的收藏图片,我可以使用它:

<img src="{{ link.object.image.src | collection_img_url: 'master' }}" alt="{{ link.title }}"/>

由于某种原因,图像未显示,并且在检查后显示img src不明。如果我们使用普通的集合图像,它确实可以工作。我是否需要添加一些内容才能使此自定义字段动态显示在导航菜单(链接列表)中的每个集合中?

我编写了以下代码:

<div class="collection-list">
  {% for link in linklists.collection-list.links %}
    <div class="box">
      <a href="{{ link.url }}">
        <img src="{{ collection.metafields.custom_fields["collection_list_image_url"] }}" alt="{{ link.title }}"/>    
         <div class="heading">
           <h2>{{ link.title }}</h2>
           <button type="button" class="btn btn-dark">shop now</button>
         </div>
       </a>
     </div>
   {% endfor %}
 </div>

1 个答案:

答案 0 :(得分:0)

您需要引用link.object(并可能考虑到它可能不是集合的事实)。当您引用metafield键时,在单引号中嵌套单引号也是更好的语法:

<div class="collection-list">
  {% for link in linklists.collection-list.links %}
    {% if link.object == 'collection' %}
      {% assign cf = link.object.metafields.custom_fields %}
      <div class="box">
        <a href="{{ link.url }}">
          <img src="{{ cf['collection_list_image_url'] }}" alt="{{ link.title }}">
          <div class="heading">
            <h2>{{ link.title }}</h2>
            <button type="button" class="btn btn-dark">shop now</button>
          </div>
        </a>
      </div>
    {% endif %}
  {% endfor %}
</div>