こんにちは。
私は1MT7Blogで構築されたポータルサイトを構築したことがあります。
その時は、phpとMT4のマルチブログ機能を活用しました。
再構築を必要としたのは、クライアントが記事を修正したのにページにそれが反映されなかった時のみでした。
MTは、記事を投稿した時に、
インデックスアーカイブと記事に関係するアーカイブス(カテゴリーや月別)を再構築しますが、
この時の『再構築』で大抵の事が済むようにすればいいと思います。
まず、前提として、全てのファイルの拡張子をphpにします。
phpインクルードを多用するためです。
AブログにBブログの最新記事5件を表示したいと思ったら、
Bブログのインデックスアーカイブで新規にテンプレートを作成。
中身は、<MTEntries lastn="5">~</MTEntries>
これを仮にB-news.phpと保存
Aブログのテンプレート、もしくはHTMLコードに、
<?php include('Bブログの絶対パス/B-news.php'); ?>
とすれば、Aブログの再構築の必要無く、
Aブログには常にBブログの最新記事5件が表示されます。
例)ポータルサイトのトップページ
Aブログの最新情報(AブログでA-news.phpとして出力、phpインクルード)
Bブログの最新情報(BブログでA-news.phpとして出力、phpインクルード)
・
・
・
このように、○ブログの記事を○ブログ以外の場所“X”で使用したいと思ったら、
○ブログのインデックステンプレートでインクルード用のテンプレートを作成し、
“x”でphpインクルードさせます。
また、ポータルサイトですと、
時に複数のブログ記事を混ぜて表示したいということがあると思います。
その場合は、マルチブログ機能で、該当するブログを勝手に再構築させます。
A~Eのブログの記事を織り交ぜて最新記事リストを表示したい、とします。
その時は、Aブログのインデックステンプレートに以下のようなテンプレートを作成します。
<MTMultiBlog mode="context" include_blogs="a,b,c,d,e"><MTEntries lastn="x">~</MTEntries></MTMultiBlog>
これをAE-news.phpとして出力
Aブログのツール→プラグイン→MultiBlogで再構築トリガーを設定します。
・Bブログ/ブログ記事の保存時/インデックスを再構築する
・Cブログ/ブログ記事の保存時/インデックスを再構築する
・Dブログ/ブログ記事の保存時/インデックスを再構築する
・Eブログ/ブログ記事の保存時/インデックスを再構築する
上記設定で、それぞれのブログ(B~E)に記事が保存された際に、Aブログのインデックステンプレートが勝手に再構築されます。
よって、AE-news.phpが常に最新記事リストとして出力されます。
マルチブログ機能で注意が必要なのは、記事の修正時にその修正が出力に反映されない場合があるということです。
『記事を削除したのに、記事リストに並んでいる』
たまにあります。
恐らく、マルチブログ機能の再構築トリガーの条件に当てはまらなかったのでしょう。
この場合は、Aブログのインデックスアーカイブの再構築が必要です。
マルチブログで複数記事を織り交ぜて表示したいと思ったら、マルチブログ用にブログを1つ作っておくと便利です。
私の場合、一切記事を持たない『0ブログ』を作り、
この『0ブログ』上で他のブログ記事を集めたテンプレートを作成します。
『0ブログ』を作る利点は、マルチブログ関連の再構築が必要な際、『0ブログ』さえ再構築すればOKという分かりやすさ(管理側にもクライアント側にも)です。
他に『再構築』を不必要とするために、
エントリーアーカイブはあくまでもそのエントリーの内容だけを表示させるようにする!
※ 『次の記事、前の記事』や、同一カテゴリーの記事など、他のエントリーの内容を引っ張ってくるとややこしくなります!どうしても表示したい時は極力phpインクルードで片付けます。
・カテゴリーリスト、アーカイブリスト等はphpで出力→インクルードさせる。
といったところでしょうか?
参考になれば幸いです。
ブログ16個・・・・・・制作サイドとしては吐き気がしますね(笑)
お礼
CHI-512さん、すごく丁寧な解説ありいがとうございます。 実際に試してみました。 うまくいきました。これで解決できそうです。 すごく助かりました。 ちなみにブログ16個から24個に増えそうです。 がんばります!