目前看来,我创建的变量无法在不同的文件之间进行通信。
{%- assign global_var = "VALUE" -%}
{%- include 'YOUR_FILE' global_var: global_var -%}
对于Shopify的liquid,您可以执行以下操作:
有一个解决方法,您可以将全局变量设置为主题设置中的选项config/settings_schema.json
{
"type": "text",
"id": "global_variable",
"label": "global variable",
"default": "Variable value"
},
你可以通过以下方式在Liquid文件中访问此内容:
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 访问它,并且你需要在购物车为空时更新它。
似乎模板在主题之前加载,因此在布局/主题文件中设置的变量不会出现在模板中。令人沮丧。但是,您可以通过片段设置它们,并在模板、布局等中包含此片段。
{%- liquid
assign current_language = 'en'
if request.path contains '/nl/'
assign current_language = 'nl'
endif
%}
{%- liquid
include 'get-language'
if current_language == 'en'
else
endif
%}
标签
,这就是一个HTML代码片段。{% assign variable = value %}
你应该能够在文件的任何地方获取该值,并且在它被分配后包含在其中的任何文件中。
我相信这是你能够获得的最接近全局变量的方式。