7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WordPressでTwig

Last updated at Posted at 2014-08-19

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"オブジェクト経由で関数を実行できるようにしています。

サンプルテーマ

7
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?