多条件(AND)if else语句异常:集合筛选仅触发首个条件
解决Liquid中if-else条件顺序导致的逻辑问题
嘿,我一眼就看出问题出在哪了!你的条件判断顺序搞反啦——更具体的条件应该放在前面,不然会被宽泛的条件直接拦截。
你原来的代码里,第一个if pageValues contains 'Latexmadrasser'会匹配所有包含这个材质标签的情况,哪怕用户同时选了尺寸70x200,程序也会先触发第一个分支,后面的elsif根本没机会执行。
给你修正后的代码,调整条件顺序就搞定了:
{% if pageValues contains 'Latexmadrasser' and pageValues contains '70x200' %} <h2 class="mat-h2-collecion">Latexmadrasser 70x200</h2> <p> Hello </p> {% elsif pageValues contains 'Latexmadrasser' %} <h2 class="mat-h2-collecion">Latexmadrasser</h2> <p> Hello </p> {% endif %}
逻辑说明:
- 先检查最具体的场景:是否同时选中了材质
Latexmadrasser和尺寸70x200,满足就显示对应的组合标题 - 再检查宽泛的场景:只选中材质的情况,这样就不会被前面的条件提前拦截啦
这样调整后,不管用户是只选材质,还是同时选材质和尺寸,都能触发对应的内容了。
内容的提问来源于stack exchange,提问作者Alexander Krüger
相关产品推荐
相关产品推荐

