ハッシュ変数を使って同一カテゴリ内の前・次リンク表示(エントリベースネーム順)
ハッシュ変数を用い、同一カテゴリ内エントリのみの前のリンク・次のリンクを、エントリのベースネーム(ファイル名)順に取得します。別のカテゴリのリンクは生成されません。
サイトをファイル名で厳密に管理運用する場合には、カテゴリ内の次・前のエントリへのリンクは、エントリベースネーム順で生成したい場合があります。例えば、このサイト(mtde.info)ではエントリベースネーム名に10番単位でソート用インデックスを付加しており、あとからエントリとエントリの間へ別のエントリを追加して挟むことができる設計となっており、そのような理由でエントリベースネームで判断するコードを先行実装しています。
コード
コードは、先のエントリでも紹介しました、こちらのものを改造させて頂きました。
Movable Type 備忘録:ハッシュ変数を使って同一カテゴリ内の前・次リンク表示<MTIf name="entry_template">
<ul>
<MTIfNonEmpty tag="EntryCategory">
<MTEntryCategories>
<MTSetVarBlock name="cat_name"><$MTCategoryLabel$></MTSetVarBlock>
</MTEntryCategories>
<MTSetVarBlock name="cat"><MTGetVar name="cat_name" index="0"></MTSetVarBlock>
<MTSetVarBlock name="EntBaseName"><$MTEntryBaseName$></MTSetVarBlock>
<MTEntries lastn="0" category="$cat">
<MTSetVarBlock name="LopEntBaseName"><$MTEntryBaseName$></MTSetVarBlock>
<MTSetVarBlock name="ent_name" key="$LopEntBaseName"><$MTEntryTitle$></MTSetVarBlock>
<MTSetVarBlock name="ent_link" key="$LopEntBaseName"><$MTEntryPermalink$></MTSetVarBlock>
</MTEntries>
<MTLoop name="ent_name" sort_by="key value reverse">
<MTIf name="EntBaseName" eq="$__key__">
<$MTSetVar name="find" value="1"$>
<MTElseIf name="find">
<li class="prev">前のエントリ: <a href="<MTGetVar name="ent_link" key="$__key__">" title="前のエントリ"><MTGetVar name="ent_name" key="$__key__"></a></li>
<$MTSetVar name="find" value="0"$>
</MTIf>
</MTLoop>
<MTLoop name="ent_name" sort_by="key value">
<MTIf name="EntBaseName" eq="$__key__">
<$MTSetVar name="find" value="1"$>
<MTElseIf name="find">
<li class="next">次のエントリ: <a href="<MTGetVar name="ent_link" key="$__key__">" title="次のエントリ"><MTGetVar name="ent_name" key="$__key__"></a></li>
<$MTSetVar name="find" value="0"$>
</MTIf>
</MTLoop>
<MTElse>
<MTEntryPrevious><li class="prev">前のエントリ: <a href="<$MTEntryPermalink$>" title="前のエントリ"><$MTEntryTitle$></a></li></MTEntryPrevious>
<MTEntryNext><li class="next">次のエントリ: <a href="<$MTEntryPermalink$>" title="次のエントリ"><$MTEntryTitle$></a></li></MTEntryNext>
</MTIfNonEmpty>
</ul>
</MTIf>
このコードは、通常「ブログ記事の詳細」モジュールの一箇所へ貼ります。
動作サンプル
2008年3月現在、このサイトに実装しています。そちらでご確認ください。
- ページ先頭へ
- 前のエントリ: ハッシュ変数を使って同一カテゴリ内の前・次リンク表示(投稿日時順)
- 次のエントリ: ページ末尾付近に「ページ先頭へ」のアンカーリンクをつける
- カテゴリ:ナビゲーション関連サンプル