如何在Shopify Liquid文件中调用获取指定的产品图片
Shopify Liquid调取指定产品图片解决方案
可以直接在Liquid中调取指定产品图片,你尝试的筛选逻辑是正确的,仅需要调整两处细节即可生效:
产品图片的
id属性是数值类型,你之前筛选时传入了字符串格式的ID导致匹配失败,同时where过滤器返回的是数组,需要先调用first取出匹配到的单个图片对象再调用图片链接过滤器,正确写法如下:{{ product.images | where: 'id', 1785281087 | first | img_url: '1024x' }}末尾的尺寸参数可根据需求替换为
master(原图)、2048x等你需要的规格。如果你不想用ID筛选,也可以通过图片的
alt属性或者文件名handle做筛选,和ID筛选逻辑一致:- 按alt属性筛选示例:
{{ product.images | where: 'alt', '红色XL竖款产品图' | first | img_url }}- 按文件名handle筛选示例(你想要的类似asset调用的写法可通过这个实现,比如你上传的图片文件名为
red-xl-vertical-product.png,对应handle就是red-xl-vertical-product):
{{ product.images | where: 'handle', 'red-xl-vertical-product' | first | img_url }}
更稳定的替代方案
如果担心后续图片修改导致ID/handle/alt变动匹配失效,可以给产品创建自定义图片类型元字段,在后台将指定图片绑定到该元字段,调用时直接读取元字段即可,无需做筛选逻辑,后续换图也只需要在后台修改元字段绑定关系,不用改Liquid代码:
{{ product.metafields.custom.target_product_image | img_url }}
内容的提问来源于stack exchange,提问作者mx_code
相关产品推荐
相关产品推荐

