Twigとは
Symfony2でも利用可能なPHPのテンプレートエンジンです。
詳しくはSYmfony2のドキュメントを見るといいと思います。
Twigを使うに至った理由
WordPressのテンプレート階層にレイアウトを組み込むなんての書きましたが、テンプレートエンジン使ったほうが、より柔軟・強力だよねってことで。
WordPressでTwig
以下、Timberプラグインを使う場合と、Twigを直接使う場合の2通り書きます。
Timberを使ってTwig
Timberはプラグインなので、pluginsディレクトリにアップロードして、プラグイン有効化したらokです。
wp-content/themes/テーマディレクトリ/views がtwigファイルを配置するディレクトリになります。
また、テーマ内に配置して functions.php で timber-library/timber.php をincludeしておけば利用可能なようです。
個人的なTimberを使うデメリットは、Timberのメソッドやクラス群を使って出力する形になるところ。
Twigを直接
twigのイントロまんまですが、composerでインストールして
composer require "twig/twig:1.*"
Twig_Loader と Twig_Environment を使ってやればok
// index.php
require_once __DIR__ . '/vendor/autoload.php';
$loader = new Twig_Loader_Filesystem(__DIR__ . '/views');
$twig = new Twig_Environment($loader, array(
'cache' => __DIR__ . '/cache',
));
echo $twig->render('index.twig', array('name' => 'Fabien'));
ただ、Twigは関数を登録したりしないと、関数が実行できないので、そのまま使うのは難しいです。
下のサンプルでは、 {{ func.trim(" text ") }} といった形で"func"オブジェクト経由で関数を実行できるようにしています。