拙著「WordPress Web開発逆引きレシピ」が発売されました。
WordPressの様々なカスタマイズについて、逆引きの形式で取り上げています。
PHP 7.0での動作確認も行っています。
MT4でカテゴリーアーカイブに全エントリーを出力する
ゲストブックに以下のような投稿をいただきました。
MT4がリリースされ、早速新規インストールし、記事とコメントを読み込ませ、運用を開始しました。
アップグレードしなかったのは、新しいテンプレートを使ってみたかったからです。
ところが、カテゴリのリンクをクリックすると、MT4では、カテゴリ内の最新の10件しか表示されず、これまでのようなカテゴリ内の全ての記事を表示する方法が無いようなのです!
最新の10件だけではあまり意味が無いので、ぜひ以前のようにカテゴリ内の全記事を表示するようなカスタマイズ法を勉強したいのですが、記事にしていただけないでしょうか?
ということで、この件を調べてみました。
1.ブログ記事リストテンプレートを書き換える
Movable Type 4ではアーカイブの種類が増えていますが、複数のブログ記事(エントリー)が出力されるアーカイブは、すべて「ブログ記事リスト」というアーカイブテンプレートに基づいて出力されています。
このテンプレートの中に、以下のような部分があります。
<MTIf name="datebased_archive"> <MTEntries> <$MTEntryTrackbackData$> <$MTInclude module="ブログ記事の概要"$> </MTEntries> <MTElse> <MTEntries limit="auto"> <$MTEntryTrackbackData$> <$MTInclude module="ブログ記事の概要"$> </MTEntries> </MTIf>
この部分により、ブログ記事は以下のように出力されます。
- 日付関係のアーカイブの場合は、<MTEntries>タグによって、そのアーカイブのすべてのブログ記事が出力されます。
- それ以外のアーカイブの場合は、<MTEntries limit="auto">タグによって、メインページと同じく、標準では最新の10件のブログ記事が出力されます。
したがって、上記のリストにある「<MTEntries limit="auto">」を「<MTEntries>」に書き換えれば、カテゴリーアーカイブでも各カテゴリーの全ブログ記事が出力されるようになります。
2.ただしあまりお勧めしません
ここまでのように書き換えれば、これまで通りの動作になります。
しかし、書き換えることはあまりお勧めしません。
Blogを長く続けると、各カテゴリーのブログ記事の数が増えていきます。
となると、カテゴリーアーカイブに各カテゴリーの全てのブログ記事を出力するようにすると、再構築に時間がかかることになります。
この問題を避けるために、MT4ではカテゴリーアーカイブには全てのブログ記事を出力しないようになったのではないかと思われます。
また、MT4の標準設定では、カテゴリーアーカイブを月別に分割したページも出力されます。
MT4の標準テンプレートだと、カテゴリーアーカイブページのサイドバーには、月別カテゴリーアーカイブへのリンクも出力されます。
各カテゴリーの過去のブログ記事も読めるようにしたいのであれば、月別のカテゴリーアーカイブを利用することをお勧めします。