エントリー本文
MTMultiBlog タグブロック内での MTInclude タグの入れ子について
現在、Movable Type の MultiBlog プラグインでポータルブログの実験中ですが、MTInclude タグの入れ子があると再構築でエラーになるようです。
確認したのは 4.23 + Windows ローカル環境のみで、他の環境は確認できていません。
まず、ポータルブログにするブログのメインページに次のようなサブテンプレートがあります。
<mt:Entries>
<$mt:Include module="ブログ記事の概要"$>
</mt:Entries>
サブテンプレートからインクルードしている「ブログ記事の概要」テンプレートモジュールでは、さらに MTInclude タグを使って「ブログ記事のメタデータ」テンプレートモジュールをインクルードしています。メタデータには投稿日時や投稿者、コメント件数やトラックバック件数など、ブログ記事の投稿情報が含まれます。
次に、ポータルブログの収集対象となるブログの作成と、各ブログの MultiBlog プラグインの設定を行ったあと、上記のサブテンプレートを MTMultiBlog タグで括り、
<mt:multiBlog mode="loop">
<mt:Entries>
<$mt:Include module="ブログ記事の概要"$>
</mt:Entries>
</mt:multiBlog>
とすると、メインページの再構築時に次のエラーが発生します。

MTInclude でインクルードしている内容を元テンプレートに貼り付けると、再構築エラーは解消します。
「ブログ記事の概要」テンプレートモジュールでは「カテゴリ」テンプレートモジュール、「タグ」テンプレートモジュールをインクルードしていますが、それらについても同様です。
要約すると、MTMultiBlog タグから1回のインクルードは大丈夫ですが、入れ子のインクルードがあると再構築エラーになるようです。大雑把な説明ですいませんが、当方の設定ミス等がありましたらご指摘ください。
- BlogIDViewer プラグイン
- MTMultiBlog タグブロック内での MTInclude タグの入れ子について(続き)
- Movable Type で他のブログのテンプレートモジュール・ウィジェットを利用する
- ハワイの人
- Movable Type 4 の再構築で「Can't call method "id" on unblessed reference」が発生する問題について
- 特定のランクのタグだけを表示する
- Movable Type プラグイン一覧
- Movable Type 4.1 カスタムフィールドの使用方法
- Movable Type(MT)テンプレート
- Movable Type のアップグレードで旧アプリケーションディレクトリのプラグインを新アプリケーションディレクトリにコピーしない方法
- Movable Type 4.26 のスケジュールタスク実行時にエラーが発生する現象について
- Movable Type 4.25 における MTEntires タグの category モディファイアの不具合について
- Movable Type の再構築エラー(コンテキスト外での利用)を解析方法
- Movable Type の管理画面に「IP禁止リスト」を表示する
- MTMultiBlog タグブロック内での MTInclude タグの入れ子について(続き)
- Movable Type 4 の再構築で「Can't call method "id" on unblessed reference」が発生する問題について
- Movable Type 4.21 でファイルのアップロードで「不正な要求です。文字コードUTF-8に含まれない文字データを送信しています。」というエラーになる問題について
- Movable Type 4 でテンプレート編集画面の内容が途中から消失する問題の対処
- Windows XP のローカルサーバ環境(ジャンクション利用)への Movable Type 4.1 のインストールで「mt-staticがみつかりません」という警告が表示される場合の対処
- Movable Type でサブドメインを利用する場合の設定
- Movable Type 4.1 でコメント投稿者情報が保存されない不具合について
- 「月別アーカイブリスト」が月別アーカイブで正常に表示されない不具合について
- Movable Type 4.0x でブログ記事へのリンクが post.html になる/ブログ記事のプレビューができない不具合について
- テンプレートの再構築で「モジュールというテンプレートが見つかりませんでした」というエラーになる場合の対処
- Movable Type 4 の管理画面で詳細メッセージのないエラーが発生する不具合について
- Movable Type でコメント投稿・トラックバックが重くなる事象を解消する
- HTTP/1.1 の「条件付きGET」を利用して PHP ファイルアクセスによるサーバ負荷を削減する
- MTEntries タグの lastn 属性と sort_order 属性(ascend)の同時指定が有効にならない件について
- Movable Type 3.x デフォルト・テンプレートのAtomフィードの不具合について
- Movable Type 3.3 で TypeKey サイン・イン時の JavaScript エラーを解消する
MT4では、
引っ張ってきている先のテンプレートじゃなく、
じぶんとこのテンプレートでモジュール探してエラーになるようです。
入れ子先のMTInclude module="・・・にも
ブログのIDを指定してやれば大丈夫だとか。
<meta name="keywords" content="<$MTInclude module="キーワード"$>" />
のモジュールである「キーワード」がどこのブログから取得されて来るべきなのかをより明確にするため、
<meta name="keywords" content="<$MTInclude blog_id="1" module="キーワード"$>" />
http://www.akinakano.com/mt/2007/10/mtmultiblog.php
↑
上記ページで助けられました^^
同じブログ ID のテンプレートモジュールを読み込む場合、blog_id モディファイアで指定しなくても構いませんが、そのテンプレートモジュールを他のブログ ID のブログで読み込んでいる場合は、指定しておく必要があります。
もし、読み込み先のブログに「ヘッダーコンテンツ」と「概要」テンプレートモジュールがあり、そのテンプレートモジュールを利用したい場合は、「ヘッダー」テンプレートモジュールで blog_id の指定をおこなう必要はありません。
http://www.movabletype.jp/blog/multiblog_template_module.html
sixapartの説明ではこんな感じでしたが
↑とは違う現象なんですかね?
