You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shopware的sw_include Twig函数中应用过滤器?

解决Shopware中sw_include无法应用内容过滤器的问题

核心原因

sw_include是Shopware自定义的Twig标签(用{% %}包裹),和原生Twig的include函数({{ }}包裹)逻辑不同:

  • 你之前用|format()能生效,是因为这个过滤器是作用在模板路径字符串上,只是替换路径里的占位符,属于字符串操作;
  • 但sw_sanitize、striptags这类过滤器是要处理模板渲染后的HTML内容,sw_include标签是直接输出内容,没有返回值供过滤器处理,所以你的写法相当于给路径字符串加了过滤器,完全没作用到渲染结果上。

可行解决方案

方案1:捕获渲染内容到变量后再过滤

先把sw_include的渲染结果存到变量里,再对变量应用过滤器输出:

{% set renderedContent %}
    {% sw_include '@Storefront/storefront/component/delivery-information.html.twig' %}
{% endset %}
{{ renderedContent|striptags }}

如果要用Shopware自带的sw_sanitize,直接替换过滤器即可:

{{ renderedContent|sw_sanitize }}

方案2:改用原生Twig include函数(需验证兼容性)

如果模板没有依赖sw_include的特殊特性(比如某些Shopware专属的模板解析逻辑),可以直接用原生include函数,这样就能直接链式调用过滤器:

{{ include('@Storefront/storefront/component/delivery-information.html.twig')|striptags }}

内容的提问来源于stack exchange,提问作者Michael_sfx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:21:34