Php Twig“U Error”的语法;“未知过滤器”;用树枝过滤木材
这必须很简单,但我看不出有什么不对。我正在使用WordPress插件Timber中的Twigg1.34的简单过滤器示例 我补充说Php Twig“U Error”的语法;“未知过滤器”;用树枝过滤木材,php,wordpress,twig,timber,Php,Wordpress,Twig,Timber,这必须很简单,但我看不出有什么不对。我正在使用WordPress插件Timber中的Twigg1.34的简单过滤器示例 我补充说 // an anonymous function $filter = new Twig_SimpleFilter('rot13', function ($string) { return str_rot13($string); }); 及 到我的主题的functions.php文件 但是在my view.Twig文件中使用{{'Twig'| rot13}}会
// an anonymous function
$filter = new Twig_SimpleFilter('rot13', function ($string) {
return str_rot13($string);
});
及
到我的主题的functions.php文件
但是在my 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?根据文档(标题:添加到Twig) 应该这样做(在
functions.php
)中):
我会说是的,很可能你需要。也许它不是view.twig文件的正确位置。好吧,但如何做到这一点是我的问题。从我从文档中读到的内容来看,你做的一切都是正确的。我认为只有在哪里做才不太清楚(对我来说也是如此)。老实说,我觉得这个方法不错。没错,文档并不清楚php函数的去向。这里列出了一个
global
函数,它“与任何其他模板变量类似,只是它在所有模板和宏中都可用”,但不清楚如何使用它。这是一个提示<代码>$loader未定义。您需要在定义了$loader
的地方编写代码,否则它将无法工作。啊,谢谢!把它变成一个完整的函数是有意义的。但是在返回str_rot13($string)
@BlueDogRanch修复后,我立即出现了一个解析错误,忘记在行的末尾加分号:DCool!工作完美。现在我知道如何处理我前面的问题了@BlueDogRanch很高兴能帮上忙,尝试一个更复杂的过滤器:(想看看我以前的问题吗?
Undefined variable: loader in 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;
});