MT4のエントリーのカテゴリによって、表示するバナーを切り替える
バナーやアフィリエイトを、jsでランダムに表示させるの続きです。
バナーにしろアフィリエイトにしろ、ドカスカと表示するよりは、そのエントリと関連性の高い広告を表示させた方がいいでしょう。MTならできます。
というわけで、またしてもベタな方法でそれを実現します。
MTのブログ記事のテンプレートで、カテゴリによって表示を変えたい部分を、例えば以下のようにします。
<mtsetvarblock name="thisCategory"><mtentrycategory /></mtsetvarblock> <mtsetvar name="adPrint1" value="" /> <mtignore>カテゴリが「Movable Type」の場合</mtignore> <mtif name="thisCategory" eq="Movable Type"> <mtsetvar name="adPrint1" value="(アフィリエイトのタグA)" /> </mtif> <mtignore>カテゴリが「セミナー・勉強会」の場合</mtignore> <mtif name="thisCategory" eq="セミナー・勉強会"> <mtsetvar name="adPrint1" value="(アフィリエイトのタグB)" /> </mtif> <mtignore>どれにも該当しない場合</mtignore> <mtif name="adPrint1" eq=""> <mtsetvar name="adPrint1" value="(アフィリエイトのタグC)" /> </mtif> <mtignore>広告を表示する</mtignore> <div class="alpha-ad"> <mtgetvar name="adPrint1" /> <!-- /.alpha-ad --></div>
解説
カテゴリ名の取得
<mtsetvarBlock name="thisCategory"><mtentrycategory /></mtsetvarblock>
現在のエントリが属するメインカテゴリを、変数thisCategoryに取得します。
カテゴリを調べる
<mtignore>カテゴリが「Movable Type」の場合</mtignore> <mtif name="thisCategory" eq="Movable Type"> <mtsetvar name="adPrint1" value="(アフィリエイトのタグA)" /> </mtif>
現在のカテゴリ名と、指定したカテゴリ名が一致したら、変数adPrint1にアフィリエイトのタグAを代入します。
どのカテゴリにも該当しない場合
<mtignore>どれにも該当しない場合</mtignore> <mtif name="adPrint1" eq=""> <mtsetvar name="adPrint1" value="(アフィリエイトのタグC)" /> </mtif>
最終的に、どのカテゴリにも該当していない場合は変数adPrint1の中身が空です。空だった場合、adPrint1の中にアリフィエイトのタグCを代入します。
変数adPrint1の中身を表示する
<mtignore>広告を表示する</mtignore> <div class="alpha-ad"> <mtgetvar name="adPrint1" /> <!-- /.alpha-ad --></div>
adPrint1の内容が出力されます。
すげーベタだなぁ
これだと、カテゴリが増えてきたときにあまりエレガントじゃないんですが(^^;)。配列にアフィリエイトのコードを入れておいて、カテゴリIDをキーにして表示した方がよいかも知れません。