You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shopify Liquid:如何从Metafields获取Article对象并显示文章标题

解决方法

要显示博客文章标题而非URL,核心是获取对应的Article对象,分两种场景处理:

一、推荐方案:将Metafield改为文章引用类型

如果可以修改Shopify后台的Metafield设置,这是最可靠的方式:

  1. 在Shopify后台找到该自定义Metafield,将类型改为文章引用列表(List of Article references)
  2. 修改Liquid代码,直接遍历引用的文章对象:
{% for article in product.metafields.custom.related_product_with_blog_post.value %}
  <div><a href="{{ article.url }}">{{ article.title }}</a></div>
{% endfor %}

这样就能直接调用article.title输出标题,同时article.url获取正确链接,无需解析URL,稳定性更高。

二、兼容方案:通过URL解析获取文章对象

如果无法修改Metafield类型(只能存储URL),可以通过拆分URL提取博客和文章的handle,再匹配到Article对象:

{% for field in product.metafields.custom.related_product_with_blog_post.value %}
  {% assign url_parts = field.url | split: '/' %}
  {% assign blog_handle = url_parts[2] %}
  {% assign article_handle = url_parts[3] %}
  {% assign target_article = blogs[blog_handle].articles[article_handle] %}
  
  {% if target_article %}
    <div><a href="{{ target_article.url }}">{{ target_article.title }}</a></div>
  {% else %}
    <!-- 文章不存在时的 fallback,显示原URL -->
    <div><a href="{{ field.url }}">{{ field.url }}</a></div>
  {% endif %}
{% endfor %}

注意:这种方式依赖URL格式固定为/blogs/博客handle/文章handle,如果URL结构变化会失效。

内容的提问来源于stack exchange,提问作者User1987

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 06:35:16