Movable Typeのブログ記事ページで同一カテゴリーの記事のリストを表示する
「CMSとして使うMovable Typeガイドブック」を読みながら、Movable Typeのタグの練習をしています。
荒木様、黒野様、とても良い本を有り難うございます。
今回は表題のように「ブログ記事ページ(ブログの個別ページ)」で「同一カテゴリーの記事のリスト」を表示するスクリプトを作ってみました。

<mt:SetvarBlock name="entrycategory"><$mt:EntryCategory$></mt:SetvarBlock> <h2>同一カテゴリー(<$mt:EntryCategory$>)内記事</h2> <ul> <mt:Entries category="$entrycategory"> <li><a href="<$mt:EntryPermaLink$>"><$mt:EntryTitle$></a></li> </mt:Entries> </ul>
- <$mt:EntryCategory$>は「エントリーが属する主カテゴリー名を表示させる変数タグ」です。
ブログ記事アーカイブでは単独で使用可能ですが、その他のテンプレートでは必ずMTEntriesコンテナタグの中に記述しなければいけません。 - mt:SetvarBlockは変数を作るタグですが、変数の値を使って変数に代入することが出来ます。
<mt:SetvarBlock name="変数名">値</mt:SetvarBlock>
ここではそのブログ記事が属するカテゴリーを<$mt:EntryCategory$>で取得し、それを「entrycategory」という変数に代入しています。
※追記
とここまで作って、複数のカテゴリー(「アプリケーション、トラブル、Mac」など)をブログ記事に設定している場合、その中の一つのカテゴリーに属するブログ記事の一覧しか表示されないことに気がつきました。
これでは困るので、<$mt:EntryCategory$>を<mt:EntryCategories>に変えて、全てのカテゴリーに対応するように変更しました。
<mt:SetvarBlock name="entrycategory"><$mt:EntryCategory$></mt:SetvarBlock> ↓ <mt:SetvarBlock name="entrycategories"><mt:EntryCategories glue=" OR "><$mt:CategoryLabel$></mt:EntryCategories></mt:SetvarBlock> <h2>同一カテゴリー(<$mt:EntryCategory$>)内記事</h2> ↓ <h2>同一カテゴリー(<$mt:var name="entrycategories"$>)内記事</h2>
- 3行目は改行は入れずに1行で書きます
- 「glue=" OR "」とすることにより、複数のカテゴリーが「OR」で区切られて変数(entrycategories)に代入され、
<mt:Entries category="アプリケーション OR トラブル OR Mac">
となって複数のカテゴリーのエントリーの一覧が表示されるようになります。


コメントする