top

エントリーアーカイブに同じカテゴリの記事一覧を表示する(4) MT4応用編

これまでもブログ記事(エントリー)に同じカテゴリの記事一覧を表示するのはいろいろと覚え書きしてきましたが、

エントリーアーカイブに同じカテゴリの記事一覧を表示する(1) Smarty編
エントリーアーカイブに同じカテゴリの記事一覧を表示する(2) MTタグ編
エントリーアーカイブに同じカテゴリの記事一覧を表示する(3) 4.0MTタグ編

これもエントリーアーカイブに関連する記事一覧を表示する(2) 応用編と同じく、同じカテゴリの記事一覧からも該当記事を除いたリストを作ることが出来ます。ついでにそれも覚え書き。以下の条件で組んであります。

  • 該当記事は除外(または何らかの方法で識別)する
  • リストに該当記事が含まれる・含まれないにかかわらず、常に指定した記事数を保つ
  • リストに記事がない場合、空の<ul></ul>を残さない
  • 4.1のダイナミック・パブリッシングで問題なく動く(__first__、__last__は使わないで組む)


■該当記事はリンクを張らずに最新10件を表示する(4.0~)
記事そのものを外すのではなく、リンクを外す方法。

<MTSetVarBlock name="thisid"><$MTEntryID$></MTSetVarBlock>
<MTSetVarBlock name="ecat"><$MTEntryCategory$></MTSetVarBlock>
<MTIf name="ecat">
<MTEntries lastn="10" category="$ecat">
<MTSetVarBlock name="eid"><$MTEntryID$></MTSetVarBlock>
<MTEntriesHeader><ul></MTEntriesHeader>
<MTIf name="eid" ne="$thisid">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
<MTElse>
<li class="thisentry"><$MTEntryTitle$></li>
</MTElse>
</MTIf>
<MTEntriesFooter></ul></MTEntriesFooter>
</MTEntries>
</MTIf>
.thisentry {
font-weight: bold;
}

■該当記事は除けて最新10件を表示する(4.1~)
該当記事はリストから除外します。記事数は赤字の部分で指定します。

<MTSetVarBlock name="thisid"><$MTEntryID$></MTSetVarBlock>
<MTSetVarBlock name="ecat"><$MTEntryCategory$></MTSetVarBlock>
<MTIf name="ecat">
<MTSetvar name="catlistcount" value="0">
<MTEntries lastn="0" category="$ecat">
<MTEntriesHeader>
<MTSetVarBlock name="ecount"><$MTEntriesCount$></MTSetVarBlock>
</MTEntriesHeader>
<MTIf name="ecount" gt="1">
<MTEntriesHeader><ul></MTEntriesHeader>
<MTIf name="catlistcount" lt="10">
<MTSetVarBlock name="eid"><$MTEntryID$></MTSetVarBlock>
<MTIf name="thisid" ne="$eid">
<MTSetVar name="catlistcount" op="++">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTIf>
</MTIf>
<MTEntriesFooter></ul></MTEntriesFooter>
</MTIf>
</MTEntries>
</MTIf>

■応用技各種

●サブカテゴリー以下の記事も表示させる
青字の部分を以下と差し替えます。

MTEntriesWithSubCategories

●エントリーの属する全てのカテゴリーの記事を表示させる
エントリーに複数カテゴリが指定してある場合、その全てのカテゴリーに属する記事もリストの対象にします。緑字の部分を以下と差し替えます。

<MTEntryCategories glue=" OR "><$MTCategoryLabel$></MTEntryCategories>

「関連エントリー」にはカテゴリーの方が都合がいいというケースにはこちらが適しているかもと。

<2008.9.8>
カテゴリーに属さない記事ではリストを表示しないよう修正(エラー回避のため)。