在程序开发中,把模板和数据混杂在一起,不是一个好主意,MVC 设计模式就是为解决这个问题出现的,由于历史原因,WordPress 并没有使用 MVC 开发模式。Twig 是 PHP 程序中应用得比较广泛的模板系统,即便没有完整的 MVC,我们也可以在 WordPress 模板中使用 Twig 模板。
通过 composer 安装 Twig 模板
直接在 WordPress 的主题目录里面使用 composer 安装 Twig 模板即可。
composer install twig/twig
配置Twig模板的目录和缓存目录
调用一下 composer 生成的 autoload 文件,然后配置一下模板路径和缓存路径,我们就可以在下一步中使用 Twig 模板了。
require_once( dirname( __FILE__ ) . '/vendor/autoload.php' ); $loader = new Twig_Loader_Filesystem(dirname( __FILE__ ) . '/tmp'); $twig = new Twig_Environment($loader, array( 'cache' => dirname( __FILE__ ) . '/tmp', ));
传入数据到模板并渲染
加载模板,在下面的示例中,加载的模板文件是:tmp/index.html
,以数组的形式传入数据到模板中,就可以直接渲染模板了。为了直观,这里的数据就直接用一个字符串代替了,感兴趣的朋友可以自定折腾其他数据。
$template = $twig->loadTemplate('index.html');
echo $template->render([ 'data' => '测试模板加载' ]);
直接使用 Twig 模板替代标准的WordPress模板开发可能显得有些激进,在使用过程中可能也会有一些坑等着我们去跳。但是如果我们开发的不是一个完整的 WordPress 模板,而是在开发基于 WordPress 的应用或者 WordPress插件的时候,使用 Twig 模板来渲染模板中的一部分数据,就会显得非常方便。