TopMovable Typeカスタマイズアーカイブ > アーカイブページのリストの表示内容が異なる理由
News
各種ブログテンプレート
2007年12月 7日

エントリー本文

アーカイブページのリストの表示内容が異なる理由

Posted at December 7,2007 2:22 AM
Category:[アーカイブ]
Tag:[, , ]

サイドバーの表示をメインページと同じにする」の続きです。

前述のエントリーでは、サイドバーにある各メニューの MTIf タグを外す方法を記しましたが、これだけでは全てのページでサイドバーが同じ表示にはなりません。具体的には、「最近のエントリー」「最近のコメント」「最近のトラックバック」の3つのリストの表示が、アーカイブによって異なります。

理由は、リスト表示に使われるテンプレートタグ(MTEntries 等)がアーカイブの種類に依存した振る舞いをしているためです。全てが依存している訳ではありませんので、具体的な結果については後述します。

これは不具合ではなく、Movable Type の仕様と思われますが、見落としていなければMovable Type ドキュメントには明示的な記述はありません。したがってこれらのリスト類がどのように表示されるか、実際に設定してみないと分からない訳です。

ということで、このエントリーでは、メインページに設定しているリストを各アーカイブページに設定した場合の結果と、それらを回避する方法について記します。

1.「最近のエントリー」「最近のコメント」「最近のトラックバック」のアーカイブページの表示結果

公開テンプレートを例に、メインページに設定してある「最近のエントリー」「最近のコメント」「最近のトラックバック」と同じMTタグを各アーカイブページに設定した場合の表示がどのようになるかを、下記の一覧にまとめました。

最近の
エントリー
最近の
コメント
最近の
トラックバック
カテゴリー・アーカイブ該当カテゴリーのエントリー一覧[MTEntries recently_commented_on指定]
該当カテゴリーの全エントリーのコメントをMTCommentsのlastn分表示
[MTEntries lastn指定]
コメントのないエントリー含めlastn分表示
表示されない
月別アーカイブ該当月のエントリー一覧[MTEntries recently_commented_on指定]
該当月の全エントリー・コメントをMTCommentsのlastn分表示
[MTEntries lastn指定]
該当月のコメントのないエントリー含めlastn分表示
メインページと同様
ブログ記事アーカイブメインページと同様メインページと同様該当エントリーのトラックバック一覧

ちょっと分かりにくいですが、メインページと同じ表示になるのは、

月別アーカイブ:「最近のトラックバック」
ブログ記事アーカイブ:「最近のエントリー」「最近のコメント」

の3パターンのみです。

2.考察

それぞれのリストが、各アーカイブでどのように振舞っているかをまとめました。

最近のエントリー・最近のコメント

「ブログ記事リスト」として再構築される場合は、テンプレートの種別に依存した表示になります。ブログ記事やウェブページといった単一ページではテンプレート種別に依存しません。

最近のトラックバック

そもそも Movable Type におけるトラックバックは、「ブログ記事」あるいは「カテゴリー」に対応した情報です。したがって、ブログ記事リスト・カテゴリーアーカイブとして再構築される場合は、テンプレート種別に依存した表示が自然です。
月別アーカイブでメインページと同じ表示になるのは、トラックバックが「日付」というアーカイブ種別に依存しない性質の情報だからです。

なお、上記の表では、カテゴリーアーカイブでは「最近のトラックバックが表示されない」と記しましたが、実はカテゴリー単位にトラックバック設定があり、ブログ管理画面より「一覧」→「カテゴリ」→「任意のカテゴリ名」で、トラックバック受信許可の項目があります。

カテゴリ単位でのトラックバック受信

ここに表示されたトラックバックURLにトラックバックを送信すれば、カテゴリーアーカイブに紐づけられた「最近のトラックバック」が表示されます。ブログ管理画面の「トラックバック一覧」にも受信件数が表示されます(下)。

カテゴリ単位でのトラックバック受信

3.アーカイブページで正常に表示する方法

次にアーカイブページで「最近のエントリー」「最近のコメント」「最近のトラックバック」を表示する方法を記します。

3.1 プラグインを利用する

メインページと同じ情報をアーカイブページに表示するには、indexcontext プラグインがお勧めです。

関連記事:メインページと同じ情報をアーカイブページで表示する indexcontext プラグイン

また、MTCollate プラグインを利用すればカテゴリー・アーカイブ/月別アーカイブで正常にすることができます。

関連記事:MTCollate を使って「最近のコメント」を表示する

Recents プラグインを利用する方法もあります。このプラグインを利用する場合は、MTCommentsRecent タグに mode="force" を付与することを忘れないでください。

3.2 モジュール化する

リスト自体をモジュール化(部品化)します。具体的には、インデックステンプレートとしてリストを作成・再構築し、その情報をインクルードすれば、問題を解消することができます。
ここで述べる「モジュール化」は、ブログ管理画面の「デザイン」→「テンプレート」→「テンプレートモジュール」とは異なりますのでご注意ください。

モジュール化には、

がありますが、個人的には「Ajax モジュール化」をお勧めします。

4.まとめ

メインページと同じ表示を行う場合、個人的には3.2項のモジュール化による表示を推奨します。

理由は、ページ数が増大しても再構築のパフォーマンスがほとんど変わらないためです。モジュール化しない場合、「最近のエントリー」「最近のコメント」「最近のトラックバック」がアーカイブページ分再構築されますが、インデックステンプレートでモジュール化すれば、アーカイブページが増えても、常に3ファイルしか再構築されずにすみます。

「カテゴリーリスト」や「月別アーカイブリスト」、また再構築のパフォーマンスの問題上、メインページでしか表示が推奨されていない「タグクラウド」等、同様の手法でモジュール化するとさらに良いでしょう。


このエントリーは「アーカイブページに「最近のコメント」「最近のトラックバック」を表示する」をリファクタリングしたものです。

Posted by yujiro ReTweet This!
関連記事
この記事を読んだ人はこんな記事も読んでいます
人気エントリー
Hatena Hot Entries
Hatena Entries
トラックバックURL


コメント

yujiroさん、こんばんは。

先日はありがとうございました。


どちらで質問すればいいのか分からなかったので
こちらに質問させていただきます。


トップページにのみ
ブログの説明文のようなものを表示させたいんですね。

エントリーページやカテゴリーページには表示させたくないです。


その場合、

どの部分をカスタマイズすれば良いのでしょうか?

[1] Posted by 西 : December 10, 2007 6:53 PM

>西さん
こんにちは。
ご質問の件ですが、MT4であれば、「デザイン」→「インデックステンプレート」→「メインページ」の編集画面で

<div class="blog">

のすぐ下に

<div class="entry">
[書きたい内容を記述]
</div>

を追加してみてください。
それではよろしくお願い致します。

[2] Posted by yujiro : December 11, 2007 12:02 PM

分かりやすい解説本当にありがとうございます。

解決しました。


後ですね、


<body>
にどこにあるのでしょうか?

検索などもしたのですが
見つからないので・・。


必要ないという話も聞いたんですが
SEO対策上、どうしても気になってましてですね・・。


[3] Posted by 西 : December 11, 2007 7:01 PM

>西さん
こんにちは。
ご質問の件ですが、body 要素はテンプレートモジュールの「ヘッダー」にあります。

ちなみに「必要ない」というのは、body 要素のことでしょうか。
もしそうであれば、(X)HTMLマークアップとして body 要素は必須です。
それではよろしくお願い致します。

[4] Posted by yujiro : December 12, 2007 11:21 AM
コメントする
greeting

*必須



ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字 イタリック アンダーライン ハイパーリンク 引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)

Now loading...
Introduction
Entries of this Category
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.02