メインページと同じ情報をアーカイブページで表示する indexcontext プラグイン
Movable Type のアーカイブページ(カテゴリー・アーカイブ/日付アーカイブ/エントリー・アーカイブ)ではメインインデックスと全く同じ情報を出力することができません。
以前、「アーカイブページに「最近のコメント」「最近のトラックバック」を表示する」というエントリーに記した通り、「最近のエントリー」「最近のコメント」「最近のトラックバック」はアーカイブページによって出力される情報が異なります。
デフォルトテンプレートのアーカイブページにそれらの情報が設定されていないのが上記の理由であるかどうかは定かではありませんが、この振る舞いは(多分)マニュアル等に明記されていません。
先のエントリーではあの手この手でアーカイブに依存しないで表示させる方法を列挙していますが、本エントリーで紹介するプラグインを利用すればこの問題を簡単に解消してくれます。
1.プラグインのインストール
下記のサイトよりプラグインをダウンロードします。
ダウンロードした indexcontext.zip
を解凍し、中にある indexcontext.pl
を plugins
ディレクトリにアップロードします。
2.タグの設定
このプラグインが提供するタグは MTIndexContext
のみです。このタグで表示させたい各リストの外側を括ります。
デフォルトテンプレートの各アーカイブページで「最近のエントリー」を表示させたい場合、下記のタグをサイドバー部分に設定します。
<div class="module-archives module">
<h2 class="module-header">最近のエントリー</h2>
<div class="module-content">
<ul class="module-list">
<MTIndexContext>
<MTEntries lastn="10">
<li class="module-list-item"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</MTIndexContext>
</ul>
<a href="<$MTBlogURL$>atom.xml">このブログのフィードを取得</a><br />
[<a href="http://www.sixapart.jp/about/feeds">フィードとは</a>]
</div>
</div>
公開テンプレートの場合は下記のタグを設定します。
<div class="sidetitle">
Recent Entries
</div>
<div class="side">
<MTIndexContext>
<MTEntries lastn="10">
<a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a><br />
</MTEntries>
</MTIndexContext>
</div>
「最近のコメント」は MTComments
の外側、「最近のトラックバック」は MTPings
の外側を括ります。
上記のサンプルでは MTEntries
の直前と直後に MTIndexContext
を追加していますが、一番外側にある div
要素の直前と直後に設定しても構いません。
3.WidgetManager による設定
配布元でも紹介されていますが、WidgetManager を利用することでテンプレート上の管理を簡単にすることができます。
例えば、「最近のエントリー」をメインページに表示するには次の1行を設定します。
<$MTWidgetManager name="Recent Entries"$>
そしてアーカイブページは下記のように MTIndexContext
で括った形で設定します。
<MTIndexContext>
<$MTWidgetManager name="Recent Entries"$>
</MTIndexContext>
MTWidgetManager
タグの name
属性には Widget 名を設定します。Widget 名は「Recent Entries」という名前で「テンプレート・モジュール」に予め登録されたもので、Widget の内容には「最近のエントリー」のタグ(下記)が設定されています。
設定方法の詳細は WidgetManager をご覧ください。
<div class="module-archives module">
<h2 class="module-header">最近のエントリー</h2>
<div class="module-content">
<ul class="module-list">
<MTEntries lastn="10">
<li class="module-list-item"><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
<a href="<$MTBlogURL$>atom.xml">このブログのフィードを取得</a><br />
[<a href="http://www.sixapart.jp/about/feeds">フィードとは</a>]
</div>
</div>
このような設定を行うことで Widget を各テンプレートで共用することが可能になります。
- Movable Typeでコンテンツタイプのフィールド名を出力する「ContentFieldNameプラグイン」
- Movable Typeで指定したテンプレートのアーカイブパスを取得できる「EntryLinkByTemplateNameプラグイン」
- Movable Type 5でお気に入りリストが作れる「Linklistプラグイン」バージョンアップ
- Objectプラグイン v0.10(ダイナミックパブリッシング対応)
- Objectプラグイン v0.03
- Object プラグイン v0.02
- CommentCustomFieldプラグイン v0.10
- EntryCategoryID プラグイン v0.10
- CommentCustomField プラグイン v0.04(ラジオボタン・チェックボックス・プルダウンメニュー対応)
- CommentCustomFieldプラグイン v0.02(画像のアップロード対応)
- RecommendedEntry プラグイン
- Split プラグイン
- ArchiveDateFooter プラグイン(MT4.2 対応)
- FolderLink プラグイン
- BlogArchiveRelativeURLプラグイン
≫ ダイナミック・パブリッシング対応 indexcontext プラグイン from あんちもん2.Lab
idxctxプラグイン(indexcontextプラグイン)の、ダイナミック・パブリッシング対応PHP版、作っちゃいました。 [続きを読む]
≫ 月別アーカイブにも月別アーカイブ一覧を表示(ややこしい):indexcontext.pl from metabolism
今日はMTづいてますw 久し振りに小粋空間さんを彷徨ってたら、ずっと欲しかっ... [続きを読む]
≫ 最近のエントリー&コメントの表示 from 瑞了奇譚
最近のエントリーと最近のコメント。この二つの表示について今まで気になっていることがありました。 [続きを読む]
こんばんわ?
blog.aklaswad.com:idxctx をダウンさせていただいて設定したのですが、新規エントリーを書いたあと、「全てを再構築」しないと、反映されません。
設定がまちがっているのでしょうか?
ご指導お願いします
追記です。
1.プラグインのインストール
2.タグの設定
*(3.WidgetManager による設定は行っていません)
=================================================
2.タグの設定を、各ページの
エントリーリスト、コメントリスト、カテゴリーリストアーカイブリストにして「全て再構築」すると反映されている状態です。
すみません。説明のしかたが悪くて;;
この状態であれば、エントリーする度に「全てを再構築」しなければならない。
3.WidgetManager による設定は上記の
1.プラグインのインストール
2.タグの設定
とセットになっているものですか?
もしセットであるならば、エントリーするときの
再構築の仕方はどうなりますか?
解決しました。
.
.
として、
インデックステンプレートにモジュールをつくり
再構築のときのチェックをいれ
などとと、各アーカイプページに記述することで
解消されました。
>ななこさん
こんにちは。
ご質問の件、自己解決されたようで良かったです。
また貴重な情報ありがとうございました。