エントリー記事

MT4のエントリーのカテゴリによって、表示するバナーを切り替える

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をキーにして表示した方がよいかも知れません。