这必须很简单,但是我看不出有什么问题.我在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);
但是在我的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?
解决方法:
应该这样做(在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;
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。