Twig_Error_Syntax для "Неизвестного фильтра" с фильтром Twig в Timber
Это должно быть просто, но я не вижу, что не так. Я использую пример простого фильтра по адресу https://twig.symfony.com/doc/1.x/advanced.html с 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 моей темы.
Но используя {{ 'Twig'|rot13 }}
в моем файле view.twig выдает фатальную ошибку
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 другим способом?
1 ответ
Решение
Согласно документации здесь (название: Добавление к ветке)
это должно быть сделано так (в 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;
});