MT4でテンプレートの条件分岐を利用してアクセス解析設置

以前に AccessAnalyzer.com について、MTに設置するケースを紹介した事があるのですが、そのMT4版になります。
アクセス解析 [AccessAnalyzer.com] の設置 for MT|Materializing

実は、私は既にこのサービスは利用してなくって、サービス自体も新規募集を停止してるようなので、あくまでカンと方法のみの紹介になっちゃいます。
また、基本的にはMT3の場合と同じです。
つまり、それぞれのテンプレート(index用とかアーカイブ・インデックス用とかウェブページ用とかカテゴリ別ブログ記事リスト、とか)に、個別に解析用タグを埋め込んでしまえばOKです。

では何が大きく違って来るのか?というと、MT4ではアーカイブ・テンプレートを統一して利用する事が可能なので、もし「カテゴリ・月別・年別」などのアーカイブを統一したひとつのテンプレートで利用する場合に、条件分岐利用して使ってみたいな・・・なんて辺りで不明な箇所が出て来るんじゃないかな?といったトコです。

テンプレートに設定される予約変数を利用して条件分岐

MT4のテンプレートでは、予約変数を用いてアーカイブ・テンプレートの種類判別を行う事が出来ます。
アーカイブテンプレートに設定される予約変数 | Movable Type 4 ドキュメント

例えば、以下のような使い方が出来ます。
カテゴリ・月別・年別・投稿者別のアーカイブを、ひとつのアーカイブテンプレートとして設定してる時など。

アクセス解析 [AccessAnalyzer.com] の設置 for MT4

書いてみるとこんな風になります。

<mt:If name="archive_class" eq="category-archive">
<mt:IfArchiveTypeEnabled archive_type="Category">
カテゴリの時はここの内容
</mt:IfArchiveTypeEnabled>
</mt:If>

<mt:If name="archive_class" eq="datebased-monthly-archive">
<mt:IfArchiveTypeEnabled archive_type="Monthly">
月別アーカイブが有効なときこの内容
</mt:IfArchiveTypeEnabled>
</mt:if>

<mt:If name="archive_class" eq="datebased-yearly-archive">
<mt:IfArchiveTypeEnabled archive_type="Yearly">
年別アーカイブが有効なときこの内容
</mt:IfArchiveTypeEnabled>
</mt:if>

<mt:If name="archive_class" eq="author-archive">
<mt:IfArchiveTypeEnabled archive_type="Author">
投稿者別アーカイブが有効なときこの内容
</mt:IfArchiveTypeEnabled>
</mt:if>

ということなので、それぞれ「~なときこの内容」の箇所に、解析タグを埋め込んで利用すると良いです。
解析タグ自体は以前の内容で。

メイン・インデックスやアーカイブ・インデックスの判別

前項ではアーカイブ・テンプレートが中心でしたが、インデックス用テンプレートの判別も行う事が出来ます。
まとめてになりますが、書き方の例は以下。

<mt:If name="main_index">
メイン・インデックスの時に表示
</mt:If>

<MTUnless name="main_index">
メイン・インデックス以外の時に表示
	<MTIf name="archive_index">
	アーカイブ・インデックスの時に表示
	</MTIf>
		<MTIf name="system_template">
		システム・テンプレート(検索用とか)の時に表示
		</MTIf>
</MTUnless>

使い方のコツとしては、慣れるまでは「Unless」のような分岐処理は使わなくて良いので、ひとつひとつの判別から入ってくと良いんじゃないかな?って気がします。

<mt:If name="main_index">~の時に表示</mt:If>

テスト・コードの紹介

前項までの情報を踏まえて記述例になります。

■20090418_221703_testcode.txt

あとがき

テンプレート判別を用いれば、例えばモジュールとしてひとつ作ったテンプレート内で判定さえしっかり行えば、その記述ひとつでサイト全体への適用状況を調整する事が出来ます。
分岐なんて難しいよーヽ(`Д´)ノって場合には、テンプレート毎に記述すればそれはそれでOKです。
知っておいて損はない、という事でひとつ。

<参考資料>
アーカイブテンプレートに設定される予約変数 | Movable Type 4 ドキュメント
アーカイブテンプレートに設定される変数を利用したテンプレート判別 | MovableType.jp

▲ to Top

トラックバック(0)

▲ to Top