在片段中加载 Shopify 产品元字段

Loading Shopify Product Metafields in snippets

我正在尝试编辑我的 shopify 商店中的默认“Dawn”主题。我的目标是通过一个片段输出产品元字段。为此,我创建了一个名为“color-swatches.liquid”的片段,其中包含以下代码:

    <div class="sw-external-links modification">
        {%- if product.metafields.my_fields.current_product_color -%}
    </div>

从 product-card.liquid 调用此代码段时,我使用了以下 liquid 代码:

{% render 'color-swatches', product: product_card_product %}

但是我无法在产品中输出 current_product_color 元字段的值。

如果我像这样将截取的代码直接粘贴到 product-card.liquid 中,它会起作用:

{{ product_card_product.metafields.my_fields.current_product_color }}

你能告诉我我做错了什么吗?当我将 product_card_product 变量传递给它时,我只希望片段代码输出 current_product_color 元字段。

虽然你的问题没有足够的信息,但我会尽力帮助你。

  1. 在代码段文件 (color-swatches.liquid) 中,检查您在访问产品的元字段时是否使用了正确的变量。
    如果您像这样呈现代码段(在 'product-card.liquid' 中):
    {% render 'color-swatches', MY_PRODUCT: product_card_product %},

    那么您应该像这样访问元字段(在 'color-swatches.liquid' 中):
    {{ MY_PRODUCT.metafields.my_fields.current_product_color }}

  2. 检查 if 语句。

    • 在 liquid 中,更喜欢 != blank 语法:
      {%- if product.metafields.my_fields.current_product_color != blank -%}
    • 检查 if 语句是否有效。
      为此,请尝试在 if.
    • 之外呈现代码段
  3. 如果没有任何效果,请仔细检查自己。
    使用 <script>console.log({{ YOUR_LIQUID_CODE | json }})</script> 执行此操作并检查浏览器的控制台以查看日志。
    在这两个文件中,检查元字段和产品。