MTタグ逆引き辞典

カテゴリ別の記事一覧から今開いている記事を除く

ブログの記事個別ページを開いた時、現在開いている記事と同じカテゴリが設定されている記事を一覧で表示する、という場合があります。
現在開いている記事は重複しないように一覧を表示する方法をご紹介します。

テンプレート記述例

アーカイブ・テンプレートの「記事」に記述する場合

<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 class="mdl-color-text--primary-contrast mdl-card__supporting-text comments related-pages">
  <h4><i class="material-icons">library_books</i> <$mt:CategoryLabel$> カテゴリの記事</h4>
  <div class="mdl-color-text--grey-700">
    <ul>
</mt:EntriesHeader>
      <mt:If tag="entryid" ne="$id">
      <li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle encode_html="1"$></a></li>
      </mt:If>
<mt:EntriesFooter>
    </ul>
  </div>
</div>
</mt:EntriesFooter>
</mt:Entries>
</mt:If>
</mt:EntryPrimaryCategory>

まず、mt:If tag="CategoryCount" ge="2"では、そのカテゴリに記事が2つ以上ある場合表示する、としています。今開いている記事は除く、ということを実現したいのでもし1記事しかない場合は何も表示されないためです。

mt:EntryID setvar="id"では現在の記事のidを変数として準備しておきます。

mt:Entriesでは記事の一覧を出すのですが、mt:If tag="entryid" ne="$id"の条件によって現在の記事のidと出力する記事のidを比較して、同じ場合は表示しないという処理をしています。

以下のように出力されます。

出力例

レポート カテゴリの記事

  • レポート カテゴリの記事2
  • レポート カテゴリの記事3

使用したMTタグはこちら

Movable Type.net は無料トライアルが可能です。
Web制作者の方で、デモや評価利用をご希望の場合は、制作者向け評価ライセンスをご利用ください。

無料トライアル 資料ダウンロード 制作者向け評価ライセンス