Liquid模板问题:已设置特色图片仍显示占位符
已设置特色图片仍显示占位符的修复方案
问题根源
你当前代码里的判断变量完全错误:
- Shopify Liquid 中,文章的特色图片属性是
article.featured_image,不是你写的featured-image - Liquid 变量命名不允许用中划线,正确写法是下划线或驼峰式
这个错误导致第一个 if 条件永远不成立,第二个 if 始终触发,所以不管有没有设置特色图片,页面都会显示占位符。
修复后的代码
{% if article.featured_image != blank %} <div><img src="{{ article.featured_image | img_url: 'master' }}" loading="lazy" alt="{{ article.featured_image.alt | escape }}" class="featured_image"></div> {% else %} <div class="placeholder_image"></div> {% endif %}
额外优化说明
- 把两个独立的
if判断合并成if-else,逻辑更简洁,避免冗余判断 - 图片
src里要使用article.featured_image对象来调用img_url过滤器,原代码直接用article是错误的 - 图片
alt属性要从article.featured_image.alt获取,原代码的article.alt不存在会输出空值,同时加上escape过滤器避免特殊字符问题
内容的提问来源于stack exchange,提问作者Marvin Blach
相关产品推荐
相关产品推荐

