Twig_Error_Syntax for "Unknown filter" 在 Timber 中使用 Twig 过滤器
Twig_Error_Syntax for "Unknown filter" with a Twig filter in Timber
这一定很简单,但我看不出有什么问题。我在 https://twig.symfony.com/doc/1.x/advanced.html#filters 使用 Twig 1.34 中的简单过滤器示例,Timber 是一个 WordPress 插件。
我加了
// 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;
});
这一定很简单,但我看不出有什么问题。我在 https://twig.symfony.com/doc/1.x/advanced.html#filters 使用 Twig 1.34 中的简单过滤器示例,Timber 是一个 WordPress 插件。
我加了
// 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;
});