Movable TypeのMTEntriesタグで特定の複数ブログ記事を出力する方法

Movable TypeのMTEntriesタグで特定の複数ブログ記事を出力する方法

Posted at March 15,2013 12:55 AM
Tag:[MovableType, MTEntries, TemplateTag]

Movable TypeのMTEntriesタグを使って特定の複数ブログ記事を出力する方法を紹介します。

1.基本

MTEntriesタグは複数のブログ記事を出力するためのテンプレートタグです。

次のように記述すれば最新の10件のブログ記事タイトルを出力します。

<mt:Entries limit="10">
  <$mt:EntryTitle$>
</mt:Entries>

MTEntiresタグには、特定のブログ記事IDを出力するために、idモディファイアが用意されています。

例えば、ブログ記事ID「100」の情報を出力するには、次のように記述します。

<mt:Entries id="100">
  <$mt:EntryTitle$>
</mt:Entries>

ただし、この方法では1つの記事しか出力することができません。

2.特定の複数ブログ記事を出力する

公式ドキュメントには解説されていませんが、idモディファイアを使って特定の複数ブログ記事を出力することができます。

例えばブログ記事ID「100」「200」「300」の情報を出力するには、次のように記述します。

<mt:Entries id="100","200","300">
  <$mt:EntryTitle$>
</mt:Entries>

3.複数のブログ記事IDを変数で設定する

2項の方法では、ブログ記事IDを変更するためにidモディファイアを直接書き換えなければなりません。

もう少し柔軟に変更できるようにブログ記事IDを変数で設定できるようにします。

ブログ記事IDを変数で設定するためには次のようにします。

<$mt:SetVar name="ids" value="100","200","300"$>
…中略…
<mt:Entries id="$ids">
  <$mt:EntryTitle$>
</mt:Entries>

このようにカンマ区切りで設定が行える仕組みについては「Movable Type テンプレートタグの簡略化まとめ」をご覧ください。

この構造にしておけば、たとえばMTSetVarタグの値を条件分岐などを使って設定することで、ブログ記事IDを入れ替えることができます。

<mt:if ...>
  <$mt:SetVar name="ids" value="100","200","300"$>
<mt:elseif ...>
  <$mt:SetVar name="ids" value="400","500","600"$>
<mt:else>
  <$mt:SetVar name="ids" value="700","800","900"$>
</mt:if>
...中略...
<mt:Entries id="$ids">
  <$mt:EntryTitle$>
</mt:Entries>

なお、このフォーマットはダイナミックパブリッシングには対応していないようです。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)