応用
カテゴリ別の記事一覧から今開いている記事を除く
ブログの記事個別ページを開いた際に、現在開いている記事は重複しないように一覧を表示する方法をご紹介します。
使用するMTタグ
- mt:EntryPrimaryCategory
- mt:If
- mt:Ignore
- mt:EntryID
- mt:EntriesHeader
- mt:CategoryLabel
- mt:EntryPermalink
- mt:EntryTitle
- mt:EntriesFooter
まず、mt:If tag="CategoryCount" ge="2"の記述で、そのカテゴリに記事が2つ以上ある場合に表示するように制御します。
今開いている記事は除きたいので、もし1記事しかない場合は何も表示されないためです。
mt:EntryID setvar="id"では現在の記事のidを変数として準備しておきます。
mt:Entriesでは記事の一覧を出すのですが、mt:If tag="entryid" ne="$id"の条件によって現在の記事のidと出力する記事のidを比較して、同じ場合は表示しないという処理をしています。
ウェブページ記述サンプル
記事テンプレート記述例
<mt:EntryPrimaryCategory>
<mt:If tag="CategoryCount" ge="2">
<mt:Ignore>exclude current entry</mt:Ignore>
<$mt:EntryID setvar="id"$>
<mt:Entries limit="6">
<mt:EntriesHeader>
<div>
<h1><$mt:CategoryLabel$> カテゴリの記事</h1>
<ul>
</mt:EntriesHeader>
<mt:If tag="entryid" ne="$id">
<li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
</mt:If>
<mt:EntriesFooter>
</ul>
</div>
</mt:EntriesFooter>
</mt:Entries>
</mt:If>
</mt:EntryPrimaryCategory>