collections - Shopify Storefront API:从页面或集合中获取元字段
问题描述
我正在尝试通过 Shopify Storefront API 和 GraphQL 从页面和集合中获取元字段。
然而,这似乎是不可能的。浏览“可查询对象”页面,“元字段”并未作为页面或集合上的字段列出。如此屏幕截图所示,GraphiQL 还表示它不存在。我直接从我获得元字段形式产品的部分复制了代码。
这真的可以吗?对我来说,这似乎很奇怪,应该不可能得到那些元字段,但我就是找不到方法。
我想要的只是能够从特定的集合或页面中获取网站的一些不同部分的文本。
解决方案
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>
您将获得具有该特定名称空间的元字段。
推荐阅读
- asp.net - 使用身份发布带有 React 的 ASP.NET Core 问题
- microsoft-dynamics - Dynamics GP MuleSoft 连接器 CreateGLTransactions
- javascript - TypeError:类方法不是函数
- amazon-rds - 将架构从一个 AWS RDS 移动到另一个
- java - 如何使用 StringTokenizer 计算行数、标记、整数 # 并获取整数总和?
- c# - 为什么在 ASP.NET 中创建新控制器时没有“Api Controller - Empty”选项?
- html - 如何从左对齐的动态长度文本中删除右侧的空格?
- javascript - 具有列搜索的 DataTable 不可折叠
- python - Django 管理 - 自定义列表外观和 ManyToManyField 键的选择
- stack - 从“反应”导入反应;SyntaxError: 不能在模块外使用 import 语句