php-Twig_Error_Syntax用于“未知过滤器”,并在木材中使用Twig过滤器

这必须很简单,但是我看不出有什么问题.我在wordpress插件Timber中使用Twig 1.34在https://twig.symfony.com/doc/1.x/advanced.html#filters处使用了简单的过滤器示例.

我加了

// an anonymous function
$filter = new Twig_SimpleFilter('rot13', function ($string) {
    return str_rot13($string);
});

$twig = new Twig_Environment($loader);
$twig->addFilter($filter);

到我主题的functions.PHP文件.

但是在我的view.twig文件中使用{{‘Twig’| rot13}}会导致致命错误

PHP Fatal error:  Uncaught exception 'Twig_Error_Syntax'
with message 'UnkNown "rot13" filter' in view.twig

通知

Undefined variable: loader in functions.PHP

使用{{‘Twig’| lower}}之类的过滤器就可以了.

我是否需要以其他方式将函数添加到functions.PHP

解决方法:

根据文档here(标题添加到Twig)

应该这样做(在functions.PHP中):

add_filter('timber/twig', function($twig) {
   $twig->addExtension(new Twig_Extension_StringLoader());

   // add Your filters here
   $twig->addFilter(
     new Twig_SimpleFilter(
       'rot13', 
       function($string) {
         return str_rot13($string);
       }
     )
   );
   // or simply: 
   // $twig->addFilter(new Twig_SimpleFilter('rot13', 'str_rot13'));

   $twig->addFilter(
     new Twig_SimpleFilter(
       'hello', 
       function($name) {
         return 'Hello, '.$name;
       }
     )
   );

   return $twig;
});

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...