Liquid (Shopify) - 追加字符串为空
Liquid (Shopify) - Append String is Empty
在 Shopify 中,我试图在我的 shopify 商店中构建一个当前标签的字符串。
如果我在页面上:
mysite.com/collections/all/tag1+tagC+tag4
我需要能够在没有 spaces 的情况下将当前标签作为一个完整的字符串获取:
tag1+tagC+tag4
我的代码目前是这样的:
{% if current_tags %}
{% assign current_filters = '' %}
{% for tag in current_tags %}
{% if forloop.last == false %}
{{ current_filters | append: tag | handleize | append: '+'}}
{% else %}
{{ current_filters | append: tag | handleize}}
{% endif%}
{% endfor %}
{% endif %}
如果我再输出
{{current_filters}}
我明白了
tag1+ tagC+ tag4
首先,我如何获得加号后没有 space 的字符串?我试过使用 | strip
没有运气,也把我的代码放在 {%- -%}
其次,当我尝试将 current_filters
变量附加到另一个变量的末尾时,它是 blank/empty
{% assign current_collection = collection.handle %}
{% assign base_url = shop.url | append: '/collections/' | append: current_collection | append: '/' | append: current_filters %}
输出base_url只是returns
mysite.com/collections/all/
没有
mysite.com/collections/all/tag1+tagC+tag4
为什么我只使用 {{current_filters}}
而不是 .. append: current_filters
我认为您混淆了 liquid 的基本语法。
{{ ... }}
只用于输出data/content,不用于赋值
所以当你说:
{{ current_filters | append: tag | handleize | append: '+' }}
// Logic "" (empty value) "tag" (the tag) "+" (the string)
您输出 current_filters
的空值,但将 tag
和 +
的值添加到它。但最后你根本没有修改 current_filters 值。所以最后它仍然是一个空字符串。
对于 assigning/modifying 值,您始终使用 {% ... %}
,因此在您的情况下,您应该修改此代码:
{{ current_filters | append: tag | handleize | append: '+'}}
给这个:
{% assign current_filters = current_filters | append: tag | handleize | append: '+' %}
此外,您还有 join
过滤器,它会使上面的所有代码变得多余。
您只需拨打 {{ current_tags | join: '+' }}
就可以了。
在 Shopify 中,我试图在我的 shopify 商店中构建一个当前标签的字符串。
如果我在页面上:
mysite.com/collections/all/tag1+tagC+tag4
我需要能够在没有 spaces 的情况下将当前标签作为一个完整的字符串获取:
tag1+tagC+tag4
我的代码目前是这样的:
{% if current_tags %}
{% assign current_filters = '' %}
{% for tag in current_tags %}
{% if forloop.last == false %}
{{ current_filters | append: tag | handleize | append: '+'}}
{% else %}
{{ current_filters | append: tag | handleize}}
{% endif%}
{% endfor %}
{% endif %}
如果我再输出
{{current_filters}}
我明白了
tag1+ tagC+ tag4
首先,我如何获得加号后没有 space 的字符串?我试过使用 | strip
没有运气,也把我的代码放在 {%- -%}
其次,当我尝试将 current_filters
变量附加到另一个变量的末尾时,它是 blank/empty
{% assign current_collection = collection.handle %}
{% assign base_url = shop.url | append: '/collections/' | append: current_collection | append: '/' | append: current_filters %}
输出base_url只是returns
mysite.com/collections/all/
没有
mysite.com/collections/all/tag1+tagC+tag4
为什么我只使用 {{current_filters}}
而不是 .. append: current_filters
我认为您混淆了 liquid 的基本语法。
{{ ... }}
只用于输出data/content,不用于赋值
所以当你说:
{{ current_filters | append: tag | handleize | append: '+' }}
// Logic "" (empty value) "tag" (the tag) "+" (the string)
您输出 current_filters
的空值,但将 tag
和 +
的值添加到它。但最后你根本没有修改 current_filters 值。所以最后它仍然是一个空字符串。
对于 assigning/modifying 值,您始终使用 {% ... %}
,因此在您的情况下,您应该修改此代码:
{{ current_filters | append: tag | handleize | append: '+'}}
给这个:
{% assign current_filters = current_filters | append: tag | handleize | append: '+' %}
此外,您还有 join
过滤器,它会使上面的所有代码变得多余。
您只需拨打 {{ current_tags | join: '+' }}
就可以了。