Standing on the Shoulder of Linus

Home / 2011 / 11月 / 06 / PHPTAL デザインテンプレートエンジン

PHPTAL デザインテンプレートエンジン

デザインテンプレートでは、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 &raquo;', '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をごらんください。

関連

Posted in php | Tagged cms, デザイン
← WordPressカテゴリーを親子までにしたい(孫カテゴリーを作らない) git でタグを打つ →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • 問い合わせフォーム改善: 選択肢により条件分岐し、項目の表示非表示を変更する
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.