Craft CMS:如何移除查询结果中的匹配/重复文本
实现方案
你可以在原有逻辑基础上最小改动实现需求,以下是两种可行方案:
方案1:最小改动版本
仅调整非首位循环项的输出内容,不需要新增额外变量:
<p class="stage"> <strong> {% for stage in eventKeyStage %} {% if loop.first %} {{ stage.title }} {% else %} & {{ stage.title|replace({'Key Stage ': ''}) }} {% endif %} {% endfor %} </strong> </p>
逻辑说明:首位分类正常输出完整标题,后续分类只输出提取后的编号部分,自动拼接&符号即可得到目标格式。
方案2:扩展性更强的版本
如果后续需要单独使用阶段编号做其他逻辑,可以先统一收集所有编号再拼接输出:
<p class="stage"> <strong> {% if eventKeyStage|length == 1 %} {# 单个分类直接输出原标题 #} {{ eventKeyStage[0].title }} {% elseif eventKeyStage|length > 1 %} {# 多个分类先提取所有编号 #} {% set stageNumbers = [] %} {% for stage in eventKeyStage %} {# 按空格切割取最后一段,比固定替换前缀兼容性更强,避免空格/大小写不统一的问题 #} {% set stageNumbers = stageNumbers|merge([stage.title|split(' ')|last]) %} {% endfor %} Key Stage {{ stageNumbers|join(' & ') }} {% endif %} </strong> </p>
内容的提问来源于stack exchange,提问作者Grace Coote
相关产品推荐
相关产品推荐

