如何在Liquid中定义全局变量?

时间:2016-01-29 22:08:29

标签: shopify liquid

现在,我创建的变量似乎无法跨文件进行通信。

3 个答案:

答案 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 %}

您应该能够在文件中的任何位置获取值,并在分配后包含任何文件。

我相信这是你可以接近全局变量的最接近的地方。