投稿日順にカテゴリ等を並べ替えるプラグイン

以前に、「カテゴリを記事が投稿された順に表示する」という記事を書きました。
その記事では、ハッシュを使って、テンプレートタグで並べ替えを実現しました。

ただ、ハッシュを使うのは分かりにくいという声もあります。
そこで、処理をプラグイン化し、さらに以下の機能を追加しました。

  • フォルダをウェブページの投稿日順に並べ替える
  • ブログをブログ記事の投稿日順に並べ替える
  • ブログをウェブページの投稿日順に並べ替える
  • ユーザーをブログ記事の投稿日順に並べ替える
  • ユーザーをウェブページの投稿日順に並べ替える

1.プラグインのインストール

プラグインは以下からダウンロードします。

RecentlyPostedObjects_1_00.zip

プラグインの継続的な開発やサポートのために、プラグインをご利用された方は、ドネーション(寄付)を行っていただけると幸いです。
ドネーションの方法は、こちらのページをご参照ください。

また、このプラグインの他にも、いくつかのプラグインを配布しています。
配布中のプラグインは、Movable Type Plugin Directoryのページをご参照ください。

Movable Typeのプラグイン開発等のドキュメント「Movable Type Developer's Guide Volume 1」も販売しています。
ご自分でプラグインを作ってみたい方に、ぜひお勧めしたい一冊です。
詳細は特設ページをご覧ください。

ダウンロードしたファイルを解凍すると、「RecentlyPostedObjects」というフォルダができます。
このフォルダを、Movable Typeのインストール先にある「plugins」フォルダの中にアップロードします。

2.追加されるテンプレートタグ

このプラグインをインストールすると、以下のブロックタグが追加されます。

テンプレートタグ内容
MTCategoriesRecentlyPostedカテゴリをブログ記事の投稿日で並べ替えて出力します。
MTFoldersRecentlyPostedフォルダをウェブページの投稿日で並べ替えて出力します。
MTBlogsEntryRecentlyPostedブログをブログ記事の投稿日で並べ替えて出力します。
MTBlogsPageRecentlyPostedブログをウェブページの投稿日で並べ替えて出力します。
MTAuthorsEntryRecentlyPostedユーザーをブログ記事の投稿日で並べ替えて出力します。
MTAuthorsPageRecentlyPostedユーザーをウェブページの投稿日で並べ替えて出力します。

各テンプレートタグでは、以下のモディファイアを指定することができます。

モディファイア動作
include_blogs="x,y,z・・・"
またはblog_ids="x,y,z・・・"
IDで指定したブログからカテゴリ等を読み込みます。
include_blogs="all"またはblog_ids="all"とすると、すべてのブログを対象にすることができます。
exclude_blogs="x,y,z・・・"IDで指定したブログを除いたブログから、カテゴリ等を読み込みます。
lastn="n"出力するカテゴリ等をn件に制限します。
sort_order="ascend"カテゴリ等を、ブログ記事等が投稿された日の昇順で並べ替えます。

また、各テンプレートタグのブロックの中でMTEntries/MTPagesタグを使うと、それぞれのカテゴリ等に属するブログ記事やウェブページを出力することができます。

3.タグの組み方の例

カテゴリを、ブログ記事の投稿日順に並べ替えて出力し、かつ各カテゴリの最新記事を1件ずつ出力するには、以下のようにタグを組みます。

<ul>
<mt:CategoriesRecentlyPosted>
    <li><a href="<$mt:CategoryArchiveLink$>"><$mt:CategoryLabel$></a><br />
    →<mt:Entries lastn="1"><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>(<$mt:EntryDate format="%x %X"$>)</mt:Entries></li>
</mt:CategoriesRecentlyPosted>
</ul>

ブログを、ブログ記事の投稿日順に並べ替えて出力し、かつ各ブログの最新記事を1件ずつ出力するには、以下のようにタグを組みます。

<ul>
<mt:BlogsEntryRecentlyPosted>
    <li><a href="<$mt:BlogURL$>"><$mt:BlogName$></a><br />
    →<mt:Entries lastn="1"><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>(<$mt:EntryDate format="%x %X"$>)</mt:Entries></li>
</mt:BlogsEntryRecentlyPosted>
</ul>

ユーザーを、ブログ記事の投稿日順に並べ替えて出力し、かつ各ユーザーの最新記事を1件ずつ出力するには、以下のようにタグを組みます。

<ul>
<mt:AuthorsEntryRecentlyPosted>
    <li><$mt:AuthorDisplayName$><br />
    →<mt:Entries lastn="1"><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle$></a>(<$mt:EntryDate format="%x %X"$>)</mt:Entries></li>
</mt:AuthorsEntryRecentlyPosted>
</ul>