MT4でMTタグのアトリビュート内で更にタグを使用する

いたはし 2007年09月05日

このようなコンテンツはいかがですか?

このページ以外にも下記がオススメです

皆さんこんばんは。板橋です。

MT4.22ではsetvarモディファイアでさらに簡単にできるようになりました!

Movable Typeを使っていると、MTタグのアトリビュート(属性値)の中で
更にMTタグを使用したい時があります。

例えば、同じカテゴリーに属するエントリーの一覧を出したいとき。
<MTEntries category="<$MTEntryCategory$>">
・・・
</MTEntries>
と書くことができればすぐに完了するのですが、
Movable Type 3.xの標準の機能ではそれが出来ません。

Movable Type 3.xでは、MTTagInvoke(*1)というプラグインを導入し、拡張してようやく実装ができました。

しかし、他でも言及されている通り、MT4にメジャーバージョンアップするに伴って、今まで汎用的に使用されていたいくつかのプラグインが使用できなくなります。
MTTagInvokeもそのひとつです。(*2)

(※弊社配布プラグインに関しては、こちらのエントリーで紹介していますので、
 あわせてご参照ください。
 →Movable Type4 既存プラグイン動作検証

MovableType4では、SetVar、GetVarを始めとするVarタグが強化されました。
このタグは、MTSetVarタグで値を一時保存し、
MTVar、あるいはMTGetVarタグを使ってその値を任意の場所に呼び出すことができます。

記述例

<$MTSetVar name="setValue" value="あああ"$>
<p><$MTGetVar name="setValue"$></p>

上記タグの表示例

<p>あああ</p>

(※SetVar自体は表示されません)

では、以下のような要件をSetVarタグを使って実装してみましょう。

要件
エントリーアーカイブで、そのエントリーと同じカテゴリーに属するエントリーを15件出したい。

TagInvokeでの記述例

<MTTagInvoke name="MTEntries">
<MTTagInvokeAttribute name="category"><$MTEntryCategory$></MTTagInvokeAttribute>
<MTTagInvokeAttribute name="lastn">15</MTTagInvokeAttribute> <MTTagInvokeContents>
<h2><$MTEntryTitle$></h2>
<p><$MTEntryExcerpt$></p>
</MTTagInvokeContents>
</MTTagInvoke>

3.xまでは上記タグで対応していましたが、
4.0からはMTSetVarBlockにて同様の処理が可能になります。
下記にその方法を記載します。

SetVar記述例

<MTSetVarBlock name="catList"><$MTEntryCategory$></MTSetVarBlock>
<MTEntries category="$catList" lastn="15">
<h2><$MTEntryTitle$></h2>
<p><$MTEntryExcerpt$></p>
</MTEntries>

必要なのは、これだけです。
内に格納したい値(この場合はEntryCategory)を記述します。SetVarBlockタグは、まず処理を行ってから出てきた値を格納してくれます。

この場合ですと、エントリーが属するカテゴリーのラベルに変換されたMTEntryCategoryが格納されます。

呼び出しの部分でGetVarタグを利用していないのは、
MTタグのアトリビュート内でMTタグが利用できないためです。
ですので、$catListという変数名で呼び出しをかけます。
(SetVarで指定したnameは、変数名になります)

今回はTagInvokeとの置き換えという形で紹介させていただきましたが、
このようにMT4のデフォルトのタグを使うことで、
3.x以前のプラグインの機能をカバーすることができるようになりました。
特にSetVar、GetVar(Var)タグは非常に利用頻度が高いため、使い方を覚えておくと良いでしょう。

今回紹介できなかったSetVarTemplateタグは、
下記エントリーで紹介していますので、こちらも併せてご覧ください。
MTSetVarTemplateタグについて


*1 プラグイン固有のタグを組み合わせることで、
   タグの中でタグを利用することなどが出来る。
*2 2007年8月28日18時現在。

トラックバック

ダイナミック・パブリッシングに対応しました

焼です。どうもMovableType4では再構築時にヘッダエラーが出て色々調べて...

えぬぱすどっとねっと2007年9月25日 23:53

MT3.36からMT4.23へバージョンアップ

MT3.36でこのBlogは運営していましたが、そろそろ世間はMT4が主流となり...

KSMT::HR/HM blog2009年1月18日 21:07

コメントする

この記事にご意見やメッセージがございましたらコメントをお願いいたします。

  • ※ コメントは承認後に公開されます。内容によってはご返信致しかねる場合がございます。

MTエンジニアブログ

配布プラグイン一覧

ParentalInclude
MT5でウェブサイトとブログのテンプレート連携を便利にするプラグイン
DuplicateEntry
ブログ記事を複製または移動するMovableTypeプラグイン
NotifyAnythingChanged
何かが起きたらメールで通知するMovableTypeプラグイン
rssEntry
取込んだRSSをエントリとして書き出すMovableTypeプラグイン
AutoTagging
面倒な記事のタグ付けを自動化する
FutureRebuild
日時を指定してページを再構築する
EntryImExporter
エントリをCSVに書出したり、CSVから一括登録するMovableTypeプラグイン
MailPack
Movable Typeで簡単携帯投稿!メール投稿プラグイン
DirectoryUtility
カテゴリ・フォルダの階層を表示したり、親フォルダを表示したり、何かと便利なプラグイン
CSVList
CSVデータを整形して表示する
PageBute
静的ページ用ページ分割プラグイン

注目記事

RSS

ページの先頭へ戻る