複数ブログ処理のモディファイアを拡張するプラグイン

Movable Type 5では、MTEntries等のテンプレートタグにinclude_blogs等のモディファイアを指定して、複数のブログから情報を集める機会が多いです。
この機能を拡張して、「post_exclude_blogs」というモディファイアを追加するプラグインを作りました。
「ウェブサイト内のすべてのブログのうち、一部を除外したい」といった時に便利です。

1.概要

Movable Type 5では、MTEntries等のタグに「include_blogs="children"」や「include_blogs="siblings"」と書くことで、ウェブサイト配下のすべてのブログから情報を読み込むことができます。
一方、exclude_blogsというモディファイアで、ブログを除外することもできます。

しかし、include_blogsとexclude_blogsの両方を同時に指定することができません。
そのため、「ウェブサイト配下のすべてのブログのうち、一部を除外する」といったことを簡単に表すことができません(ハッシュを駆使すれば、テンプレートタグだけでも可能ではありますが)。

今回紹介するプラグインをインストールすると、「post_exclude_blogs」というモディファイアが追加され、include_blogsモディファイアと併用することができるようになります。

2.インストール

プラグインは以下のアドレスからダウンロードできます。

BlogLoadContextEx_1_00.zip

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

3.使い方

このプラグインをインストールすると、MTEntries等のinclude_blogsモディファイアを使えるテンプレートタグで、「post_exclude_blogs」というモディファイアを指定することができます。
include_blogsモディファイアで読み込み元のブログを指定した後で、post_exclude_blogsモディファイアで一部のブログを除外することができます。

例えば、ウェブサイトのテンプレートに以下のように書くと、ウェブサイト配下のすべてのブログのうち、IDが3番と5番のブログを除外して、ブログ記事の一覧を出力することができます。

<mt:Entries include_blogs="children" post_exclude_blogs="3,5">
  ブログ記事の情報を出力する部分
</mt:Entries>

また、ブログのテンプレートの中では、「post_exclude_blogs="this"」と書くと、そのブログ自身を除外することができます。

例えば、ウェブサイト配下にブログが5つあって、それらのIDが2番~6番だとします。
ここで、IDが2番のブログのテンプレートに以下のように書くと、ウェブサイト配下のブログのうち、そのブログ自身(IDが2番のブログ)を除外して、残りのブログの情報を出力することができます。

<mt:Blogs include_blogs="siblings" post_exclude_blogs="this">
  ブログの情報を出力する部分
</mt:Blogs>

なお、ブログのIDを直接に書く方法と「this」とは、同時に使うこともできます。
例えば、上の例で「post_exclude_blogs="this,3"」と書くと、ウェブサイト配下のブログのうち、そのブログ自身と、IDが3番のブログを除外することができます。