现在,我创建的变量似乎无法跨文件进行通信。
答案 0 :(得分:3)
模板似乎在主题之前加载,因此布局/主题文件中设置的变量不会出现在模板中。令人沮丧。但是,您可以通过代码段设置它们,并在模板,布局等中包含此代码段
答案 1 :(得分:2)
对于Liquid,您可以在include
中传递变量{%- assign global_var = "VALUE" -%}
{%- include 'YOUR_FILE' global_var: global_var -%}
对于Shopify液体,您可以执行以下操作:
有一个解决方法,你可以在主题设置中设置全局变量作为选项config/settings_schema.json
{
"type": "text",
"id": "global_variable",
"label": "global variable",
"default": "Variable value"
},
您可以通过
在液体文件中访问它settings.global_variable
但值取决于您在主题设置中输入的内容。
如果您需要更多动态方式,可以通过ajax设置购物车属性,如:
$.ajax({
type: 'POST',
url: '/cart/update.js',
data: { attributes: {'global_variable': "MY_VALUE"} },
dataType: 'json',
success: function(cart) {
location.reload();
}
});
然后在主题中的任何位置访问它 cart.attributes.global_variable 但是每次购物车都是空的时候你必须更新它
答案 2 :(得分:-1)
只要你使用
{% assign variable = value %}
您应该能够在文件中的任何位置获取值,并在分配后包含任何文件。
我相信这是你可以接近全局变量的最接近的地方。