Shopify Liquid标签嵌套在Liquid标签中-有任何解决方案吗?



我是Shopify和Liquid的新手。我知道你不能在另一个液体标签中嵌套一个液体标签,例如:

{% something {{ something_else }} %}

我想知道是否有解决这种情况的方法?可能涉及到"捕捉"或"raw"的巧妙使用?

我正在建立一个网站,使用产品标签来表示哪些巧克力在哪些产品中(巧克力集合)。在产品页面上,我可以很容易地将标签作为列表返回:

<ul class="chocolates-menu">
{% for tag in product.tags %}
<li><a href="/collections/all/{{ tag | handleize }}">{{ tag }}</a></li>
{% endfor %}
</ul>

然而,我想呈现片段与文件名匹配标签的名称(这些将包含图像,巧克力名称和巧克力描述),即:

<li><a href="/collections/all/{{ tag | handleize }}">{% render '{{ tag }}' %}</a></li>

我得到的最接近的是:

{% for tag in product.tags %}
{% capture chocolate_tag %}
{% raw %}{% render{% endraw %} {% raw %}'{% endraw %}{{ tag }}{% raw %}' %}{% endraw %}
{% endcapture %}
<li><a href="/collections/all/{{ tag | handleize }}">{{ chocolate_tag }}</a></li>
{% endfor %}

这将输出正确的代码,但作为页面上的文本(而不是解析它)。例如:{% render 'Tag Name Here' %}简单地作为列表项的文本。任何聪明的人的帮助,我都很感激。谢谢。

我建议为所有巧克力创建一个代码片段,并使用标签作为变量来输出所需的内容。

这是我的意思的视觉表现,从你与@Fabio Filippi的讨论中更清晰一些

snippets/chocolate.liquid

{% assign tag_image = tag | append: '.png' %}
{% case tag %}
{% when 'diet' %}
<img src="{{ tag_image | file_img_url: '100x' }}" class="responsive" />
{% when 'dark' %}
<div>My dark chocolate HTML</div>
{% when 'white' %}
<div>My white chocolate HTML</div>
{% endcase %}

和如何使用:

{% render 'chocolate', tag: tag %}

相关内容

  • 没有找到相关文章

最新更新