Qiita50投稿目になります。
前回、投稿した【Tips】MovableTypeでブログ記事のmt:EntryTagsが他のブログのカテゴリと紐付ける方法の逆バージョンという形になります。
- ブログのカテゴリページで出力
- 他ブログで設置したTag名を取得しカテゴリ名と一致した記事を出力させる
- 処理が重たいのmt:loopで展開させる
// カテゴリテンプレート
<mt:CategoryLabel setvar="this_category" /> // カテゴリを取得する
<mt:Blogs blog_ids="対象となるブログIDを入力" ignore_archive_context="1">
<mt:Tags>
<mt:TagName setvar="tag_name" /> // 対象ブログのタグを変数に格納
<mt:If name="this_category" eq="$tag_name">
<mt:Entries lastn="0"> // 対象の記事情報をmt:EntriesでSetHashVarへ格納
<mt:SetHashVar name="entry">
<mt:EntryTitle setvar="title" />
<mt:EntryPermalink regex_replace='$regex_replace',"/" setvar="entry_link" />
<mt:EntryDate format="$dateformat" setvar="entry_date" />
<mt:CategoryLabel setvar="category_label" />
<mt:CategoryArchiveLink regex_replace='$regex_replace',"/" setvar="category_link" />
</mt:SetHashVar>
<mt:Var name="push(entries)" value="$entry" />
</mt:Entries>
</mt:If>
</mt:Tags>
</mt:Blogs>
<mt:loop var="entries"> // SetHashVarをloopでHTMLへ展開する
<mt:If name="__first__"> // ループの最初の処理
<div class="entries-wrap">
<h1>このカテゴリに関連する記事はこちら</h1>
</mt:If>
<div class="entries-box">
<a href="<mt:Var name="entry_link" />">
<h2 class="entries-box__title"><mt:Var name="title" /></h2>
</a>
<div class="entries-box__list">
<p class="entries-box__date"><mt:Var name="entry_date" /></p>
<p class="entries-box__category">
<a class="entries-box__category_link" href="<mt:Var name="category_link" />">
<mt:Var name="category_label" />
</a>
</p>
</div>
</div>
<mt:If name="__last__"> // ループの最後の処理
</div>
</mt:If>
</mt:loop>
この方法は他のブログの情報を引っ張るためカテゴリアーカイブの再構築が重たくなりますが、このような方法でカテゴリ名に関する他ブログの記事Tagと一致させて一覧を取得するができます。