Shopify Liquid 截断

4
我正在为我的商店制作一个新的Shopify模板。我试图计算标题中的字符数和描述中的字符数,然后将这个总数从200中减去,并在我的截断中使用结果。
(这是因为我想在每个框中获得相同数量的字符)
我认为以下代码会起作用...捕获部分有效(注意:如果我的总字符数= 204,则结果为4),但似乎截断无法使用变量?
 {% capture truncateBy %}
 {{ product.title.size | plus: product.description.size  | minus: 200 }}
 {% endcapture %}

 <p>{{ product.description | strip_html | replace: '&nbsp;', ' ' | truncate: truncateBy }}</p>
1个回答

5

您的代码在我这里似乎可以工作。它有什么问题?它显示错误,整个描述还是“…”?

您可以尝试另一种方法,使用实际的变量赋值而不是捕获:

{% assign truncateBy = product.title.size | plus: product.description.size | minus: 200 %}

编辑:truncate将截断到给定数量的字符,因此如果您只想要200个字符,则可以直接将该常量目录用作truncate的参数:

<p>{{ product.description | strip_html | replace: '&nbsp;', ' ' | truncate: 200 }}</p>

有关详细信息,请参阅truncate过滤器的文档。


嗨Dylan,是的 - 但我想要包括描述和标题在内的200个字符...这就是我遇到麻烦的地方...我把它们放在一起,减去200...然后使用结果进行截断...但似乎不起作用。 - Rob
1
关于 {{ product.title | append: ' - ' | append: product.description | strip_html | replace:'&nbsp;', ' ' | truncate: 200 }},或者您可以使用 capture 来连接标题和描述。如果您从不想截断标题,那么您可以计算 truncateBy 为 {% assign truncateBy = 200 | minus: product.title.size %} - Dylan Smith
{% assign truncateBy = 200 | minus: product.title.size %} 是一个很好的解决方案 - 谢谢 :) - Rob
根据屏幕尺寸不同截断不同长度,这种做法可行吗? - Cameron
基于屏幕大小的截断更适合在客户端使用JavaScript进行,因为那里有这些信息。 - Dylan Smith
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接