Movable Type エントリー内でMTタグを使用する方法
MovableTypeのタグマニュアルを見ていたら、「使えるタグ」が意外と存在することを知りました。今回はその中の1つ、MTLinkタグについてご紹介します。
MTLinkタグは以下の属性があります。
- template
- entry_id
これらの属性を付加することにより、「テンプレート」または「指定エントリー」のURLを自動的に生成してくれるというものなのです。それぞれアンカータグ内で使用する場合を例として挙げてみると・・・
- 指定したテンプレートへのリンク
<a href="<$MTLink template="テンプレート名"$>">リンク文字列</a>「テンプレート名」にはテンプレート編集画面で設定した名前を設定します。 - 特定のエントリーへのリンク
<a href="<$MTLink entry_id="エントリーID"$>">リンク文字列</a>「エントリーID」にはURLを生成したいエントリーのIDを設定します。
メリットとしては、例えばエントリー内で過去の記事にリンクを貼る場合、このタグを使うことによりエントリーのURLを変更しても影響が出ない点です。サーバーを変更してドメインが変わったり、またはhtmlからphp化してファイル拡張子が変わったり、エントリーファイルの命名方法自体を変更したり、などなど。どこかしらアドレスが変わってしまっても、このタグを使用していれば直接エントリー内のアドレスを変えずに、再構築の処理のみで済んでしまうので、非常に便利だと思います。
と、ここまで説明しておいて・・・実はMovableTypeではエントリー内でMTタグが使用できないのです。だから通常の使用方法では、上記メリットが何も得られないのです。そこで登場するのがプラグインです。
エントリー内においてMTタグを使用可能にできるプラグイン
(正確にはテンプレート以外でMTタグが使用可能にできるプラグイン)
「MT::Plugin::EvalTemplate」 by Life on the Kernel
設定方法
- 上記サイトよりファイルをダウンロード
- ダウンロードファイル「eval-template.txt」を「eval-template.pl」へリネーム
- MovableTypeのpluginsディレクトリにファイルをアップロード
(プラグイン側の設定はここまで。画面からの設定は不要です。) - MTタグを使用したい所に属性「eval="1"」を加える
→ この属性を加えるはテンプレートファイル内のMTタグです。
以上の方法で、「MTLink」タグがテンプレート以外で使用可能になります。4について具体的な値の設定方法は以下の通り。
| エントリー内タグを使用したい場合 | エントリー追記部内で使用したい場合 | |
|---|---|---|
| 追加前 | <$MTEntryBody$> | <$MTEntryMore$> |
| 追加後 | <$MTEntryBody eval="1"$> | <$MTEntryMore eval="1"$> |
尚、リンク先のサイトでも注意しているように、どんなテンプレートタグにも使える反面、悪用される危険を伴うため、コメントやトラックバックのテンプレートに対し有効にしないように気をつけましょう。内部で閉じているってことが、セキュリティー面では大切なんですね (*^ー゚)b

コメント入力フォーム