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

Timber中使用Twig自定义rot13过滤器报错:Unknown filter

解决Timber中Twig过滤器“Unknown filter”的问题

兄弟,你踩了Timber新手常犯的一个小坑——你自己手动创建了一个Twig_Environment实例并添加过滤器,但Timber根本没在使用这个实例!Timber框架已经帮我们管理好了Twig环境的初始化流程,直接自己新建实例完全是白费功夫,模板里根本调用不到这个过滤器。

正确的过滤器注册方式

你需要通过Timber提供的timber/twig钩子来注册自定义过滤器,这是官方推荐的标准做法。把你原来的代码替换成下面这段,放到主题的functions.php里:

add_filter('timber/twig', function($twig) {
    // 注册rot13过滤器
    $twig->addFilter(new Twig_SimpleFilter('rot13', function($string) {
        return str_rot13($string);
    }));
    
    return $twig;
});

为什么这样能行?

  • 当Timber初始化它自己的Twig环境时,会触发timber/twig钩子,并把当前的Twig实例传递给回调函数
  • 你在回调里把自定义过滤器添加到这个正在被Timber使用的实例上,模板就能识别到这个过滤器了

验证效果

现在回到你的view.twig文件,使用{{ 'Twig'|rot13 }}就会正常输出Gvvt,不会再抛出“Unknown filter”的致命错误啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:47:40