跳到主要内容

metafield

附加到父级 object 的 metafield。

要了解如何访问特定 object 的 metafield,请参阅访问 metafields

PropertiesDescription
valuemetafield 的值。

下表列出了每种 metafield 类型的值格式:

Type

返回格式

single_line_text_field

multi_line_text_field

A string

product_reference

A product object

collection_reference

A collection object

file_reference

A image object

number_integer

number_decimal

A number

date

date_time

A date string

url

A URL string

json

A JSON object

boolean

A boolean

color

A color string

weight

volume

dimension

A measurement object

rating

A rating object

访问 metafields

metafields 的访问路径由两层组成:

  • namespace - 用于防止冲突的 metafields 分组。
  • key - metafield 名称。

因此,您可以使用以下语法访问 metafield object:

{{ resource.metafields.namespace.key }}
{{ product.metafields.custom.directions.value }}
Take with a meal

访问特定类型的 metafields

json 类型的 metafields 的 value 属性返回一个 JSON object。您可以直接在 Liquid 中通过名称或从 0 开始的索引访问该 object 的属性,也可以遍历这些属性。

Temperature: {{ product.metafields.custom.burn_temperature.value.temperature }}

Unit: {{ product.metafields.custom.burn_temperature.value['unit'] }}

{% for property in product.metafields.custom.burn_temperature.value %}
{{ property[0] | capitalize }}: {{ property[1] }}
{% endfor %}
Temperature: 700

Unit: degrees

Temperature: 700
Unit: degrees
Scale: Fahrenheit

访问对象类型的 metafields

部分 metafield 类型返回一个 object,需通过 value 属性访问其中的嵌套数据。

file_reference(图片)类型的 metafield 把文件挂在 value 下。通过 value.image 读取图片,或将 value 传给 img_url 过滤器:

{{ product.metafields.custom.spec_file.value.image.src }}

{{ product.metafields.custom.spec_file.value | img_url: '200x' }}

weightvolumedimension 类型的 metafield 返回一个 measurement object

{{ product.metafields.custom.net_weight.value.value }} {{ product.metafields.custom.net_weight.value.unit }}
20 KILOGRAMS

rating 类型的 metafield 返回一个 rating object

{{ product.metafields.custom.review_score.value.value }} / {{ product.metafields.custom.review_score.value.scale_max }}
4 / 10.0

📘 提示

访问 metafield 始终返回一个 metafield object——即使该 metafield 未定义,结果也不是 nil。要判断是否有值,请检测 value,例如 {% if product.metafields.custom.spec_text.value != blank %}