拙著「WordPress Web開発逆引きレシピ」が発売されました。
WordPressの様々なカスタマイズについて、逆引きの形式で取り上げています。
PHP 7.0での動作確認も行っています。
記事と同じカテゴリのカテゴリ月別アーカイブリストを出力する
MTQに、「特定のカテゴリの記事の横に『そのカテゴリの月別リスト』を表示させたいです。」という質問があがっていました。
この質問に答えてみます。
記事と同じカテゴリのカテゴリ月別アーカイブリストを出力するには、ブログ記事アーカイブテンプレート(もしくはそれにインクルードするテンプレートモジュールやウィジェット)に、以下のような部分を入れます。
<mt:EntryPrimaryCategory>
<mt:ArchiveList archive_type="Category-Monthly">
カテゴリ月別アーカイブリストを出力するテンプレートタグ等
</mt:ArchiveList>
</mt:EntryPrimaryCategory>
例えば、Movable Type標準のクラシックブログテーマで、ウィジェットを使って同一カテゴリ月別アーカイブリストを出力したいとします。
その場合、ウィジェットの内容を以下のようにします。
<mt:If name="entry_archive">
<mt:EntryPrimaryCategory>
<mt:ArchiveList archive_type="Category-Monthly">
<mt:ArchiveListHeader>
<div class="widget-archive-monthly widget-archive widget">
<h3 class="widget-header"><$mt:CategoryLabel$>カテゴリの月別アーカイブ</a></h3>
<div class="widget-content">
<ul>
</mt:ArchiveListHeader>
<li><a href="<$mt:ArchiveLink$>"><$mt:ArchiveDate format="%Y年%m月"$> (<$mt:ArchiveCount$>)</a></li>
<mt:ArchiveListFooter>
</ul>
</div>
</div>
</mt:ArchiveListFooter>
</mt:ArchiveList>
</mt:EntryPrimaryCategory>
</mt:If>
1行目のMTIfタグで、ブログ記事アーカイブテンプレートにこのウィジェットを組み込んだ時だけ、ウィジェットを処理するようにします。
そして、2行目のMTEntryPrimaryCategoryタグと、3行目のMTArchiveListタグで、ブログ記事の主カテゴリと同じカテゴリのカテゴリ月別アーカイブリストを出力します。
