Top > April 17, 2009

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

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

再構築をすると、「日付アーカイブ「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ページで解説しています。

Comments [0] | Trackbacks [0]
Now loading...
Introduction
List of "Apr 17, 2009"
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 4.261