如何根据页面模板/句柄为shopify-section分配不同类?
解决方案:通过Liquid动态控制Section类名
当然可以!Shopify的Liquid语法允许你在Section的Schema里动态生成类名,只需要根据当前页面的模板或句柄做条件判断即可,不用修改多个文件就能实现需求。
具体修改步骤
把你原来写死的class值,替换成带条件判断的Liquid表达式:
{% schema %} { "name": "Blog", "class": "band{% unless template contains 'product' %} band--tint{% endunless %}", "settings": [ // 你的现有设置项 ] } {% endschema %}
代码说明
template全局变量:Shopify会自动返回当前页面使用的模板名称(比如博客页是blog,产品页是product)。unless条件语句:相当于“如果不满足条件就执行”——当当前页面不是产品模板时,才会追加band--tint类;产品页面则只会保留band类。
更精准的匹配(可选)
如果你只想针对product.liquid模板(而非所有产品相关模板,比如product.special.liquid),可以把条件改成精确匹配:
"class": "band{% unless template == 'product' %} band--tint{% endunless %}"
验证效果
- 博客页:
template值为blog,不满足unless的条件,最终类名是band band--tint,和原来一致。 - 产品页:
template值包含product,满足unless的条件,最终类名仅为band,去掉了tint样式。
这种方法简洁高效,只需要修改Section的Schema代码就能实现页面级的类名控制,完全符合你的需求。
内容的提问来源于stack exchange,提问作者user1406440
相关产品推荐
相关产品推荐

