Movable Type の再構築エラー(コンテキスト外での利用)を解析方法

Movable Type の再構築エラー(コンテキスト外での利用)を解析方法

Posted at April 17,2009 1:55 AM
Tag:[Error, MovableType, Rebuild, TroubleShooting]

当サイトへのコメント欄に、

再構築をすると、「日付アーカイブ「Monthly2009xxxxxxxxxx」の再構築中にエラーが発生しました: テンプレート「月別ブログ記事リスト」の再構築中にエラーが発生しました: <mtEntryXXXX>タグでエラーがありました: mtEntryXXXXをコンテキスト外で利用しようとしています。MTEntriesコンテナタグの外部で使っていませんか? 」というエラーが出るのですが、どうすればよいでしょうか?

という手の質問をときどき頂くので、このエントリーでまとめておきます。

1.コンテキストについて

多分、質問されてくる方の大半が「コンテキスト」の意味が分からないものと推測しています。

コンテキストとは人によって解釈が異なりますが、ここでは、「Movable Type のテンプレートの、ある場所における、特定の情報を扱える状態」と定義します。

簡単に言い換えると、MTEntries タグの中は、ブログ記事系のテンプレートタグが扱えるコンテキストになります。

<mt:Entries>
[ブログ記事用のテンプレートタグが扱えるコンテキスト]
</mt:Entries>

また、MTCategories タグの中は、カテゴリ系のテンプレートタグが扱えるコンテキストになります。

<mt:Categories>
[カテゴリ用のテンプレートタグが扱えるコンテキスト]
</mt:Categories>

また、テンプレートタグ内部だけでなく、例えばブログ記事テンプレートであれば、ブログ記事テンプレート内全体がブログ記事用のテンプレートタグが扱えるコンテキストになります。

2.再構築エラーの解析方法について

下記のような再構築エラーを例に解説します。

再構築エラー

Movable Type の再構築時のエラーメッセージは、先頭から順番にメッセージ内容を辿っていけば、原因が分かるようになっています。

まず、再構築でエラーが発生したページは、日付アーカイブ「Monthly20090401000000」ですが、「テンプレート「月別ブログ記事リスト」の再構築中にエラーが発生しました」とあるので、その元になるテンプレートが「月別ブログ記事リスト」であることが分かります。

次に、「<mtEntryDate>タグでエラーがありました」とあり、ここから「月別ブログ記事リスト」に記述された <mtEntryDate>タグが再構築エラーの原因であることが分かるので、テンプレート内に記述した、<mtEntryDate>タグを探してください。

エラーメッセージの最後に、「mtEntryDateをコンテキスト外で利用しようとしています。MTEntriesコンテナタグの外部で使っていませんか? 」とあります。<mtEntryDate>タグが使えるコンテキストは、

  • MTEntries タグ内
  • ブログ記事テンプレート

のいずれかなので、上記以外の場所で使われていることが再構築エラーの原因であることが分かります。

ちなみにこのエラーは、「月別ブログ記事リスト」の枠線で示した部分に、<mtEntryDate>タグを埋め込んだことが原因です。

月別ブログ記事リスト

3.エラーの解析のポイント

テンプレートモジュールやウィジェットを使っていると、エラーメッセージが長くなる場合がありますが、エラーメッセージの長さによらず、

  • 元のテンプレート(モジュールやウィジェットではなく、インデックステンプレートやアーカイブテンプレート)
  • エラーになっているテンプレートタグ(モジュールやウィジェットに記述されている場合もある)
  • エラー種別(コンテキスト外での利用など)

の3つをエラーメッセージから抽出できれば、大体解決できると思います。

1つめの「元のテンプレート」は、テンプレート種別によってコンテキストが異なるので、コンテキスト関連のエラーであれば解析するために重要な情報となります。

なお、2つめの新しいブログを作った直後は、ブログ記事がひとつも存在しないので、テンプレートタグの使い方に誤りがあっても、出力すべきページがないため、テンプレートタグが評価されず、再構築エラーは発生しません(多分)。

4.参考図書

コンテキストはテンプレートタグを扱う場合に重要な概念と思っているのですが、このことについて扱っている Movable Type 関連書籍は下記の2冊のみです(認識が間違っていたらすいません)。

Movable Type 4.2 パーフェクトガイドMovable Type 4.2 パーフェクトガイド
荒木 勇次郎

毎日コミュニケーションズ 2008-07-31
売り上げランキング : 1457

Amazonで詳しく見る
by G-Tools
Movable Type プロフェッショナル・スタイル MT4.1対応Movable Type プロフェッショナル・スタイル MT4.1対応
CSS Nite

毎日コミュニケーションズ 2008-04-08
売り上げランキング : 2676

Amazonで詳しく見る
by G-Tools

Movable Type 4.2 パーフェクトガイド」では、252~256ページで解説しています。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)