拙著「FXはチャートで勝つ!」が発売されました。
FX(外国為替証拠金取引)でのチャートの読み方を解説しています。
自由国民社刊で、定価1,728円(消費税込み)です。
アーカイブの制御(その9・条件によってアーカイブのテンプレートを変える)
先日の記事に続いて、「条件によってアーカイブのテンプレートを変える」ということを紹介します。
今日は、条件ごとに全く異なるテンプレートを使いたい場合の方法を紹介します。
1.取り上げる例
以下のような例を取り上げます。
- カテゴリA~カテゴリEの5つのカテゴリがあります。
- カテゴリAに属するブログ記事は、他のカテゴリに属するブログ記事とは違うテンプレートで出力します。
2.テンプレートモジュールの作成
まず、アーカイブページの出力に使いたいテンプレートを、テンプレートモジュールとして作成します(アーカイブテンプレートではありません)。
上であげた例では、個々のブログ記事のアーカイブページを、カテゴリAとその他との2種類に分けたいというものです。
この場合、2つのテンプレートモジュールを作ります。
それぞれに「カテゴリA用ブログ記事アーカイブ」と「その他用ブログ記事アーカイブ」などの名前を付け、テンプレートの内容を入力します。
3.アーカイブテンプレートの書き換え
次に、元々のアーカイブテンプレートを書き換えて、条件に応じてテンプレートモジュールをインクルードするように書き換えます。
今取り上げている例だと、まず既存のブログ記事アーカイブテンプレートの内容をクリアします。
そして、内容を書き換えて、ブログ記事が属するカテゴリに応じて、「カテゴリA用ブログ記事アーカイブ」「その他用ブログ記事アーカイブ」のどちらかのテンプレートモジュールを読み込むようにします。
具体的には、ブログ記事アーカイブテンプレートの内容を、以下のようにします。
<mt:EntryCategory setvar="entry_category"> <mt:If name="entry_category" eq="カテゴリA"> <mt:Include module="カテゴリA用ブログ記事アーカイブ"> <mt:Else> <mt:Include module="その他用ブログ記事アーカイブ"> </mt:If>
まず、1行目の文で、ブログ記事が属するカテゴリの名前を、変数entry_categoryに代入します。
次に、2行目のMTIfタグで、変数entry_categoryの値が「カテゴリA」と等しいかどうかを判断します。
2行目の条件が成立する場合は、3行目が処理されて、「カテゴリA用ブログ記事アーカイブ」テンプレートモジュールに沿ってブログ記事が再構築されます。
一方、2行目の条件が成立しない(ブログ記事「カテゴリA」に属していない)場合は、5行目が処理されて、「その他用ブログ記事アーカイブ」テンプレートモジュールに沿ってブログ記事が再構築されます。