Shopify Liquid实现每隔第2、4、6段插入内容的方法问询
解决Liquid中在偶数段落后插入内容的问题
你可以利用Liquid循环内置的forloop对象实现需求,forloop.index会从1开始计数当前循环位置,刚好用来判断是否为第2、4、6……段。另外要注意:原代码用split: "</p>"分割后,数组每个元素不带</p>标签,输出时需要补回,否则HTML结构会不完整。
完整代码示例
{% assign paragraphs = article.content | split: "</p>" | compact %} {% for para in paragraphs %} {{ para }}</p> {% if forloop.index | modulo: 2 == 0 %} <!-- 替换成你需要插入的指定内容 --> <div class="custom-insert">这里是要插入的内容</div> {% endif %} {% endfor %}
代码说明
compact过滤器:移除split操作后可能产生的空字符串(比如文章末尾的</p>会分割出空元素),避免输出多余的空段落。{{ para }}</p>:补回分割时去掉的</p>标签,保证段落HTML结构完整。forloop.index | modulo: 2 == 0:通过取模运算判断当前段落序号是否为偶数,满足条件则插入指定内容。
如果插入内容是Liquid代码(比如调用模板、变量),直接写在{% if %}代码块里即可。
内容的提问来源于stack exchange,提问作者Paul VI
相关产品推荐
相关产品推荐

