デザインテンプレートでは、Smarty が有名な気がしますが、PHPTAL も使いやすそうです。
PHPTAL のメリットとしては、XHTML 形式で記述されることが大きいですね。テンプレートファイルを直接ブラウザで閲覧できます。PHP のテスト環境を常時用意できるとは限りませんから、PHP を実行しなくてもデザインを編集 → チェック、という作業可能なのは嬉しいですね。
デメリットは、速度が遅い(キャッシュ等で回避できそうだが)、素の PHP より手間がかかる、あたりでしょうか。WordPress のテンプレートに PHP を直接書くことができる、という開発のスピード感は失われてしまうかもしれません。
実際のサンプルを一部紹介します。PHPTAL テンプレートはこんな感じです。
<div tal:repeat="item item" tal:attributes="class php:get_post_class();id item/id"> <h2><a tal:attributes="href item/permalink" rel="bookmark" tal:content="item/title">タイトル</a></h2> <small tal:content="item/date">x年y月z日</small> <div class="entry" tal:content="item/content">あいうえおかきくけこ</div> </div>
元にしたのは、WordPress Default テーマ (kubrick)です。(twentyeleven は複雑なテーマなので、シンプルなもので試してみました。)
<div <?php post_class(); ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php printf(__('Permanent Link to %s', 'kubrick'), the_title_attribute('echo=0')); ?>"><?php the_title(); ?></a></h2> <small><?php the_time(__('F jS, Y', 'kubrick')) ?> <!-- by <?php the_author() ?> --></small> <div class="entry"> <?php the_content(__('Read the rest of this entry »', 'kubrick')); ?> </div> </div>
PHPTAL テンプレート内には、直接 PHP コードを記述するのではなく、php:get_post_class()
のようにphp:関数名
で記述します。またpost_class()
だと echo までするので、php の値として返す get_post_class()
を使用しています。
printf(__('Permanent Link to %s', 'kubrick'), the_title_attribute('echo=0'));
の部分は、PHPTAL に反映させるのを手抜き省略しました。
詳しくは、PHPTALをごらんください。