首页 > 解决方案 > Shopify Storefront API:从页面或集合中获取元字段

问题描述

我正在尝试通过 Shopify Storefront API 和 GraphQL 从页面和集合中获取元字段。

然而,这似乎是不可能的。浏览“可查询对象”页面,“元字段”并未作为页面或集合上的字段列出。如此屏幕截图所示,GraphiQL 还表示它不存在。我直接从我获得元字段形式产品的部分复制了代码。

这真的可以吗?对我来说,这似乎很奇怪,应该不可能得到那些元字段,但我就是找不到方法。

我想要的只是能够从特定的集合或页面中获取网站的一些不同部分的文本。

从 Shopify Storefront API 中的集合中获取元字段的问题图片

标签: collectionsgraphqlshopifygraphiql

解决方案


Storefront API 仅支持 Product 和 ProductVariant 对象的元字段。

您可以在此处参考他们的文档:https ://shopify.dev/docs/storefront-api/reference/object/metafield


更好的方法是创建一个自定义集合布局,在其中输出带有液体的元字段。

例子:

您创建一个新的集合布局:collection.meta.liquid

使用以下代码:

{%- layout none -%}
{{- collection.metafields.namespace | json -}}

collection.liquid

在集合内部(或者您可以使用不同的文件,但您需要知道集合 url 以便view=在末尾添加参数):

<script type="text/javascript">     
  fetch('{{collection.url}}?view=meta')
    .then(res => res.json())
    .then(res => console.log(res))
</script>

您将获得具有该特定名称空间的元字段。


推荐阅读