MTノウハウ:MTTaginvoke不要論

しょっぱなから追記
MTTaginvokeってそもそもMT4で使えなかったという前提を忘れていました(キャー恥ずかしいっ!)。しかしながら紹介している手法そのものは有用(なはず)ですので残しておきます。

「MTTaginvoke」絡みの検索ワードでいくつかアクセスがあったので書いておこうと思います。
一言で言うと、MT4以降からはMTTaginvokeは不要と言って良いです。(確認してないだけでMT3でも行けるかも知れませんが…)
MTTaginvokeの使われるケースとして「あるカテゴリーでそのカテゴリーのみのエントリー一覧を出したい」といった場合に使われることが多々あります。
<MTEntries>のcategory属性には<MTCategoryLabel>といったMTタグを直接指定できないからですね。

手法

先日紹介した自分なりのノウハウの手法で、全テンプレート共通形式の変数「ctLabel」にカテゴリー名を取得しておきます。
その変数を利用し、下記のように記述します。


<MTEntries category="$ctLabel">
普通に「category="ctLabel"」と書いた場合、カテゴリーラベルが「ctLabel」のものを絞り込みますが、「$ctLabel」と頭に「$」を入れた形で記述することで、「変数ctLabelの中身」を参照することになります。
そのため、例えば「ctLabel」の中身が「新着カテゴリー」と存在するカテゴリー名の場合は、「新着カテゴリー」のエントリー一覧を取得できるということです。
MTTaginvokeを利用した入れ子構造による長〜い記述は一切いりません。

まとめ

用途の近いMTの値をあらかじめ共通の変数に取得しておけば、MTタグのあらゆる属性値で「$」を用いて呼び出せてハッピーラッキーということです。
「あらゆる」と書いたけど、出来そうな気がするだけで試したワケじゃないんですけどねッ!


MTEntriesでもってカテゴリごとにエントリーを動的に絞る方式を探すとMTTaginvokeに行き着くことが多々ありますが、ほとんどがMT3の頃の古い情報であって、この手法は今や古いと断言できます。上記手法もMTのアップデート次第ですぐ古くなってしまうと思います。
Web系の資料ではこうした古い資料がいつまでも残っていますが、効率化を考えて新しい手法を自分で模索するのも楽しいですよ。