MultiBlogプラグインは4.0以降はデフォルトで標準装備されるようになりました。
以下の記述は3.3以前用です。
MTは複数のブログを作れるので、ここでもメインサイト用(Note)、覚え書き用(WingMemo)とブログを使い分けていますが、この2つの更新情報を1つにまとめて表示できたら便利かもしれない…と思い立ちました。で、やってみたので覚え書きしておきます。
これにはMultiBlogプラグインを使います。
Apperceptive: Plugins: Multiblog
multiblog-1.99.8b.zipを落として解凍したら「plugins」と「php」の2つのフォルダが出てくるので、mtの該当ディレクトリ内にそれぞれのフォルダの中身をアップします。
plugins/以下に → 「MultiBlog」フォルダをまるごとアップ
php/plugins/以下に → block.MTMultiBlog.phpファイルをアップ
● 下準備:自動リビルドの設定
複数ブログを表示させたいブログの「設定」→「プラグイン」を開いて、Multiblogの設定を表示。
Whenに一緒に表示させたいブログを選び、saves an entry(エントリー保存時)にRebuild Indexes(インデックスファイルをリビルド)となるようにしてみました。
これでWingMemoで投稿があれば自動的にNoteのインデックスが再構築されることになったと思います。ちなみにphpファイルがあるのでダイナミックでも使えるのかな?と思ったんですが、そうでもないみたいですね(^^;。
<注:ダイナミック・パブリッシング時の動き>
<MTMultiBlog> → ダイナミックに対応
<MTMultiBlogEntries> → ダイナミック非対応
MultiBlogEntriesで使用していたので気が付くのが遅れましたが、MTMultiBlogの方ならダイナミックに対応してます。
● テンプレートの書き換え
1)ブログごとに表示する場合
<MTEntries>~</MTEntries>を以下の赤字の部分で囲みます。include_blogsに表示させたいブログのIDを , で区切って並べます。
<MTMultiBlog include_blogs="1,2">
<MTEntries lastn="5">
・・・
MTEntriesの内容
・・・
</MTEntries>
</MTMultiBlog>
include_blogsの代わりにexclude_blogsを使うと除外したいブログを指定できます。
2)ブログをまぜこぜにして一緒に表示する場合
<MTEntries>を<MTMultiBlogEntries>に、</MTEntries>を</MTMultiBlogEntries>に置き換えます。
<MTMultiBlogEntries include_blogs="1,2" lastn="10">
・・・
MTEntriesの内容
・・・
</MTMultiBlogEntries>
3)ブログをまぜこぜにしてかつ特定のカテゴリエントリーのみ表示する場合(3.3専用*)
<MTEntries>にはcategory="カテゴリー名"というアトリビュートがあり、特定のカテゴリーのエントリーを抜き出して表示することが出来ますが、<MTMultiBlogEntries>でも使えるようです。試してみたところ、 OR で複数カテゴリーも指定することが出来ました。青字の部分を追加します。
<MTMultiBlogEntries include_blogs="1,2" lastn="10" category="カテゴリーA OR カテゴリーB">
・・・
MTEntriesの内容
・・・
</MTMultiBlogEntries>
親カテゴリーを指定することで子カテゴリーのエントリーをまとめて表示する場合はinclude_subcategories="1"を追加します。
<MTMultiBlogEntries include_blogs="1,2" lastn="10" include_subcategories="1" category="カテゴリーA OR カテゴリーB">
・・・
MTEntriesの内容
・・・
</MTMultiBlogEntries>
これでかなり柔軟な使いこなしが可能です。
<注*>
<MTEntries>に複数のアトリビュートを指定できるようになったのは3.3以降です。<MTMultiBlogEntries>は<MTEntries>と同じ動きをしますので、3.2以前では<MTMultiBlogEntries>にもinclude_blogs="1,2" とcategory="カテゴリー名"の同時指定はできないようです。このカスタマイズは3.3で行って下さい。
MultiBlogの真価を発揮する使い方!?
1)の表示方法なら実はプラグインを使わなくても実装できます。ブログAにブログBの内容を表示させたいなら、ブログBで最新エントリーのみのインデックスファイルを作っておき、ブログAから<$MTInclude$>タグで読み込めばいいので。ダイナミックならリビルドする必要もありませんし。
ただしエントリーをごちゃまぜにしてしまう2)はさしもの<$MTInclude$>でも無理です。今回はRSSファイルに2つのブログの更新情報をまぜこぜにして一括表示させたかったので、2)と3)を使ってみました。こういう場合にこのプラグインの真価が発揮されるのではないかな?と思います。
ちなみにRSSでもやり方は同じで、テンプレートから<MTEntries>を探し出して<MTMultiBlogEntries>に置き換えるだけなので簡単です。
☆関係ない余談・・
MultiBlogのマニュアルをyahooで訳していたら、<div></div>が<悪霊></悪霊>と訳されてびびった・・・(笑)。
<2007.5.15 複数カテゴリ指定の追記>
<2007.5.16 ダイナミックへの対応状況を追記>
<2007.8.2 対応バージョンについて追記>
<2007.10.5 3.2以前への注意を追加>
コメント
chaco | 2007年9月 6日 22:37
こちらのエントリを読んで挑戦しましたが、3)ができません。category="カテゴリ名"をいれるとinclude_blogsの一番最初のブログ内の指定カテゴリしかエントリを引っ張ってこないのです。
プラグインのバージョンの差かと思って、1.99.8bにもしてみましたがダメです。MTは3.35です。
何か他に修正した場所などありますでしょうか。
ちなみに、カテゴリは日本語ですが、英語にもして試したけどダメでした。
TAEKO | 2007年9月 7日 00:43
こんにちは。
カテゴリ名は日本語で大丈夫ですよ。
注意点としては、カテゴリ名とORの間には半角スペースが必要ですが、それが全角スペースになったりしていないでしょうか。またカテゴリの順番をコントロールするためにカテゴリ名に<001>のようにHTMLタグと認識されるものが入っていたり、カテゴリ名の前に半角スペースを与えたりしていると上手く表示されませんのでご確認くださいね。
○ "映画 OR アニメ"
× "映画 OR アニメ"
× "映画 OR アニメ"
× "映画 OR <001>アニメ"
それからブログ毎にカテゴリ名は違うものになっていますね? ブログ1とブログ2でカテゴリ名が同じだと1つのブログのしか出てこないかもしれないので…。
現在私のところには動かせる3.35環境がありませんので、chacoさんのところで試して確認してみて下さいね。
chaco | 2007年9月10日 11:35
ありがとうございます!
原因は
>それからブログ毎にカテゴリ名は違うものになっていますね?
これでした。
全部のブログで同じカテゴリ名を使っていたのを、順番をコントロールする部分を少しずつ変えたら出来るようになりました。
本当に感謝です。ありがとうございました。
TAEKO | 2007年9月11日 10:14
無事解決されたようで何よりです。^^
>ブログ毎にカテゴリ名は違うもの
もしかしたら…と思っていましたがやっぱりそうだったみたいですね。3.35でこのプラグインを使っていた時、そんなようなことがあった気がしたので。少しでもお力になれたようでよかったです
成海 | 2007年10月 3日 18:34
突然、すみません。
興味深く拝見させていただいています。
マルチブログの使い方でうまく表示できず、困っております。
「指定したブログにある、あるカテゴリーのみ、エントリー部分に10個表示したい」ので、
以下のように記述しました。
<MTMultiBlogEntries lastn="10" include_blogs="3,4" category="001_sports OR 001Default2">
「MTMultiBlogEntries lastn="10" include_blogs="3,4"」までは、機能しているようで、
ブログのIDが3と4のものが10件ずつ表示されましたが、
カテゴリーに関しては、カテゴリーとして登録しているものがすべて表示されてしまいます。
考えられる原因などアドバイスよろしくお願いします。
Version 3.2-ja-2です。
マルチブログのVersionもおそらくいっしょです。
上記とはやや反れますが、
MT4のプラグイン設定のとこで、MultiBlog 2.0を選択して、リソースというところで、
使用可能なタグがでてきます。
ここに<MTMultiBlogEntries>がないみたいですが、
使い方が違うってことですかね。
TAEKO | 2007年10月 3日 22:57
>成海さん
こんにちは。
質問いただいて思い出したのですが、<MTEntries>に複数のアトリビュートを指定できるのは3.3以降だったと思います。
この場合はinclude_blogs="3,4"が指定されているため category="カテゴリ1 OR カテゴリ2"の方は無効になっているのではないでしょうか。MTのバージョンを3.3以上にアップされれば使えるようになると思います。
>MT4のMultiBlog
MT4では<MTMultiBlogEntries>タグはなくなっているようですね。その代わり、<MTEntries>にinclude_blogs="3,4"が使えるようになったので、<MTEntries include_blogs="3,4">で同じことが出来ます。3.3とは少し使い方が違ってきてますよね。
成海 | 2007年10月 4日 10:04
>複数のアトリビュートを指定できるのは3.3以降だったと
なるほど~
もやもやが取れました。
3.3以上~4以前だとけっこう限定された使い方と言えそうですが、現状一番普及してそうなのはこのあたりだと思いますので、トライしてみます。
ありがとうございます!
MT4の方もアドバイスありがとうございます。微妙な変化は気づきにくいので、困惑してしまいますが、助かりました。
ご親切にありがとうございました。
今後も参考にさせていただきます。
TAEKO | 2007年10月 5日 10:35
>成海さん
3.2以前への注意書きを追加しました。
こちらこそ成海さんのおかげでこのことに気づくことが出来ました。ありがとうございました。^^
これからもよろしくお願い致します。