Twigpress:无法将变量传递给 Twig 模板

Twigpress: Can't pass variables to twig template

我正在将 Twigpress 与 Wordpress 结合使用。根据 Twigpress doc,您可以使用 twigpress_render_twig_template($vals = array(), $template = false, $echo = true) 将变量传递给模板.

我正在尝试使用以下代码将变量传递给模板,但它不起作用。我做错了什么?

single.php:

$vals = array( 'foo' => 'bar' );
twigpress_render_twig_template($vals);

single.twig:

{{ vals.foo }} # Does not print anything #
{{ foo }} # Same #
{{ dump(vals) }} # Prints 'null' #

请n00b指教一个!谢谢。 :)

您必须在您的 twig 设置中启用调试。

这就是我为 Twig 初始化所做的。我把它放在一个单独的文件调用 twig-init.php 中,只是 require_once 我需要使用 twig.

$loader = new Twig_Loader_Filesystem('/blah/twig/templates');
$settings = array(
    'cache' => '/blah/twig/compiled',
    'debug' => true
);
$twig = new Twig_Environment($loader, $settings);

if ($settings['debug'])
    $twig->addExtension(new Twig_Extension_Debug());

转储时,您可以 {{ dump() }} 转储所有内容。

此外,您可能需要通过 _context 访问您的数组值。尝试{{ dump(_context['foo']) }}

如果您真的想通过 vals 访问变量,则必须对数组执行以下操作:

$blah = array('vals' => array('foo' => 'bar'));

那么{{ vals.foo }}就可以了。

参见:http://twig.sensiolabs.org/doc/functions/dump.html