在 Shopify 中分配条件全局液体变量
Assigning conditional global liquid variables in Shopify
我正在尝试根据所使用的本地域显示 shopify 内容。为此,我得到了以下效果很好的方法:
{% if request.host contains 'co.nz' %}
{% assign site_currency = "NZ" %}
{% endif %}
问题是变量似乎只在编译前的一个 snippet/template/layout 文件中起作用,而 Shopify 类 作为全局变量实际上只是主题设置中的一个值因此不能是有条件的。
我试过“{% assign scope = ‘page’ %}”,它在编译后显然可以工作,但我无法让它工作,而且文档很少。
有谁知道我如何只声明一次这个变量然后在整个主题中引用它?
谢谢!
Shopify 全局变量只是这里指定的对象 - https://shopify.dev/docs/themes/liquid/reference/objects
在不通过片段引用的情况下实现全局引用功能的唯一方法是通过 JS 将其存储在 cart.attributes
中,但这需要页面刷新才能生效。
创建代码段或将 {{ content_for_layout }}
上方的代码粘贴到 theme.liquid
{% comment %} /snippets/global-vars.liquid {% endcomment %}
{% if request.host contains 'co.nz' %}
{% assign site_currency = "NZ" %}
{% endif %}
如果您有几种不同的货币,我建议您考虑使用 case/when
、here are 文档。
{% comment %} /layout/theme.liquid {% endcomment %}
...
{% include 'global-vars' %}
{% comment %} this should print the currency {% endcomment %}
{{ site_currency }}
{{ content_for_layout }}
...
我正在尝试根据所使用的本地域显示 shopify 内容。为此,我得到了以下效果很好的方法:
{% if request.host contains 'co.nz' %}
{% assign site_currency = "NZ" %}
{% endif %}
问题是变量似乎只在编译前的一个 snippet/template/layout 文件中起作用,而 Shopify 类 作为全局变量实际上只是主题设置中的一个值因此不能是有条件的。
我试过“{% assign scope = ‘page’ %}”,它在编译后显然可以工作,但我无法让它工作,而且文档很少。
有谁知道我如何只声明一次这个变量然后在整个主题中引用它?
谢谢!
Shopify 全局变量只是这里指定的对象 - https://shopify.dev/docs/themes/liquid/reference/objects
在不通过片段引用的情况下实现全局引用功能的唯一方法是通过 JS 将其存储在 cart.attributes
中,但这需要页面刷新才能生效。
创建代码段或将 {{ content_for_layout }}
上方的代码粘贴到 theme.liquid
{% comment %} /snippets/global-vars.liquid {% endcomment %}
{% if request.host contains 'co.nz' %}
{% assign site_currency = "NZ" %}
{% endif %}
如果您有几种不同的货币,我建议您考虑使用 case/when
、here are 文档。
{% comment %} /layout/theme.liquid {% endcomment %}
...
{% include 'global-vars' %}
{% comment %} this should print the currency {% endcomment %}
{{ site_currency }}
{{ content_for_layout }}
...