MTのカテゴリアーカイブで最新のエントリー一覧が全て表示されない件

投稿日 :
2007.2.28
カテゴリ :
03_WEB

公私ともにMTに関わる機会が多い。今仕事でそのMTに関して問い合わせが来ており、今日はそのために解決策を模索していた。その問い合わせ内容というのが表題にあるとおり、「MTで構築されたブログで、カテゴリーを選択した際に最新のエントリー一覧が全て表示されない。」というもの。最新のエントリー一覧というのは、ブログのサイドメニューによくある、アレだ。

MTのサイドメニューに存在する「最新のエントリー一覧」はデフォルトのテンプレートに記述があるので実装は最も容易い。例えば以下のように記述すれば、ブログのエントリーのタイトルが新しいものから10件並ぶリストを表示させられる。

<ul> <MTEntries lastn="10"> <li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li> </MTEntries> </ul>

この部分、ブログのTOPでは存在する全てのエントリーのなかから最新の記事を順に表示するが、カテゴリ・アーカイブ(カテゴリ毎に分けてエントリーを表示するページ)などに遷移すると、そのカテゴリーの分け方にあわせてリストも一部しか表示されなくなる。これはMTの仕様らしい。MTタグを見れば一目瞭然な気もする。

参考:
小粋空間: アーカイブページに「最近のコメント」「最近のトラックバック」を表示する

さて、そんな仕様であったとしても、カテゴリアーカイブで全体における最新のエントリーやらコメントやらを表示させなきゃならない場合はどうすればいいか、その解決方だが、同参考ページに記述がある。以下引用。

2.2 モジュール化する
リスト表示用タグをアーカイブテンプレートに直接貼り付けると冒頭の問題が発生しますが、リスト自体を独立したモジュール(部品)として登録すれば解消されます。

MTタグのなかで、MTIncludeというものがある。MTのテンプレートは新規に作成することが出来るが、サイドメニューなど複数のテンプレートにおいて共通する部分を別ファイル化、つまりひとつのテンプレートとして独立させ、それをメインページやアーカイブのテンプレートから読み込むことで、共通箇所を一括編集できるようにする超便利なタグだ。これを使えばカテゴリーや月別のアーカイブでも、全体の最新エントリーやコメントがメニューに表示されるようになるらしい。

仕事の話に戻るが、僕宛に問い合わせの来たその対象のブログは、既にサイドメニューをモジュール化させており、上記の解決方法を実践しているかたちになっているが、メニューの表示は一部になってしまっている。何故か?

色々と思案したが、ちょっとひらめいて試してみたのが、MTIncludeのファイルの読み込む記述を変えてみるというもの。MTIncludeにはファイルを読み込む方法が二つ存在する。

参考:
Movable Type ユーザマニュアル: テンプレート・タグ

僕が仕事で担当しているブログは、読み込みに「module」を使用していた。これを「file」に変更してみたところ、ぴったしカンカン!カテゴリーページの最新エントリー表示が全体の最新10件に切り替わっていた。

仕事が片付いてよかったよかった。ただ腑に落ちない点がないわけでもない。moduleをfileに切り替えて表示が変化する理屈がわからん。

COMMENT

TRACKBACK

URL : http://tplh.net/cgi-bin/mt/mt-tb.cgi/327

MT:カテゴリーアーカイブなどでの最近のコメントやトラックバックの表示について
(kubolog - クボログ -) : 2007年3月26日 01:40




copyright © TPLH.net All right reserved.