PHPTAL では、カスタムモディファイアを自分で定義することができます。
これを利用して、WordPress の機能を少しずつ PHPTAL に移植しています。
function phptal_tales_postclass($src, $nothrow=false) { return 'get_post_class("",'.phptal_tales($src,$nothrow).')'; } function phptal_tales_permalink($src, $nothrow=false) { return 'get_permalink('.phptal_tales($src,$nothrow).')'; }
get_post_class
は、投稿毎にクラスプロパティを付与してくれます。CSS でデザインカスタマイズするときに役立ちます。
get_permalink
は、投稿のパーマリンクを作成します。デフォルト以外のパーマリンクを自動生成してくれます。
TAL テンプレートのほうでは、下記のように使用します。
<div tal:attributes="class postclass: item/id">
postclass: item/id
は、phptal_tales_postclass
の戻り値を実行します。その引数が item/id
になります。phptal_tales_postclass
は、関数そのものを記述するのではなく、get_post_class( ...
という値を返すように作成します。
パーマリンクも同様に下記のようになります。
<a tal:attributes="href permalink: item/id">
なお、PHPTAL の場合は、標準でエスケープされます。phptal_tales_XXX
を定義する時に、面倒なエスケープ作業を省くことができます。