【发布时间】:2018-09-24 22:57:14
【问题描述】:
这一定很简单,但我看不出有什么问题。我正在使用https://twig.symfony.com/doc/1.x/advanced.html#filters 的简单过滤器示例和 Twig 1.34 in 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吗?
【问题讨论】:
-
我会说是的,很可能您需要这样做。也许它只是该 view.twig 文件的正确位置。
-
好的,但如何做到这一点是我的问题。
-
根据我从文档中读到的内容,您做的一切都是正确的。我认为只有在哪里这样做不是很清楚(对我来说也是如此)。所以老实说,这对我来说看起来不错。
-
没错,文档并不清楚 哪里 php 函数的去向。并且列出了一个
global函数,它“与任何其他模板变量一样,除了它在所有模板和宏中都可用”,但不清楚如何使用它。 -
现在这是一个提示。
$loader未定义。您需要在定义$loader的地方编写该代码,否则它无法工作。