Apr

25

全ページに最新記事リストを表示する

MTのデフォルトのウィジェットに「最近のブログ記事」が用意されていますが、これをそのまま使うと、各カテゴリーアーカイブなどのページには、そのカテゴリーに属している記事の最新記事しか表示されません。

ブログの全ページに全ての記事の最新記事リストを表示しようと思うと、これが案外大変だったりするわけです。

そこで参考にさせていただいたのがこちらの記事
ブログの全ページに最新記事のリストを出力する裏ワザ

PHPもプラグインも使わずに、全ページに記事リストを表示する方法を、とても丁寧にわかりやすく説明されています。

このブログでもこの方法で最新記事を全てのページに表示しています。

というわけで「最近のブログ記事」ウィジェットはこんな感じになりました。
<mt:BlogID setvar="blog_id">
<mt:Blogs include_blogs="$blog_id" ignore_archive_context="1">
<mt:If tag="BlogEntryCount">
    <mt:Entries include_blogs="$blog_id" lastn="20">
        <mt:EntriesHeader>
<div class="widget-recent-entries widget-archives widget">
    <h3 class="widget-header">最近のブログ記事</h3>
    <div class="widget-content">
        <ul>
        </mt:EntriesHeader>
        <li class="<mt:If name="__odd__">liodd<mtElse>lieven</mtif>"><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a></li>
        <mt:EntriesFooter>
        </ul>
    </div>
</div>
        </mt:EntriesFooter>
    </mt:Entries>
</mt:If>
</mt:Blogs>
変更した部分は、
<mt:BlogID setvar="blog_id">
<mt:Blogs include_blogs="$blog_id" ignore_archive_context="1">
    <mt:Entries include_blogs="$blog_id" lastn="20">
        ----処理内容----
    </mt:Entries>
</mt:Blogs>
上記の通り。
現在のブログのIDを「blog_id」にセットして、「MTBlogs」タグで現在のブログのIDを「include_blogs」モディファイアで指定し、「ignore_archive_context」モディファイアでコンテキストを外します。
これを利用することで、テンプレートに関係なく、最新の記事リストを出力する事が可能になります。

また、「MTEntries」には「include_blogs="$blog_id"」のモディファイアを入れないと、再構築中にエラーが出ます。

これで全ページに最新記事リストを表示する事ができました。
| トラックバック(0)

関連記事

トラックバック(0)

トラックバックURL: http://www.mossari.info/mtcgi/mt-tb.cgi/37