突然「MovableTypeが再構築できなくなった!」

と問い合わせがあり、再構築をして確認すると「Can’t call method “label” on an undefined value」とエラーがでてしまう。こちら側では何も作業をしていない。
このエラーについて調べてみました。

Movable Type 4.2でブログ全体をバックアップしたあと、再度エクスポートし、再構築したときに上記のようなエラーが出ることがあります。
私も、上記のエラーが「サイトを再構築」させている途中で発生し、非常に苦しみましたので備忘録として記録します。
同じ悩みがある方の処方箋になれば良いのですが。。

対処法はこれでよいのかどうかはまったくの不明です。調べまわって結果的にエラーが回避されただけの状態です。 よって、現象回避の根本的な解説が今のところできませんのでゴメンナサイ。

引用元:徒然雑草
http://www.blockmodule.com/2009/08/30/movable-type-42-cant-call-meth/

問題がおきていたMTのバージョンはMT5だったのですが、引用元で紹介されているコードの書き換えで再構築できるようになりました。
MT5でも問題なく使えるようですね。

/lib/MT/Entry.pmを編集

■変更前
[perl]
my @cats = sort { $a->label cmp $b->label } @$cats
[/perl]

■変更後
[perl]
my @cats;
eval(‘my @cats = sort { $a->labelstrong> cmp $b->label } @$cats’);
[/perl]

しばらく日時はたちましたが、特に問題なく更新できているようです。
本当は今後のために原因を追究するべきなんですけど、いかんせん時間がなくて・・・知っている方がいましたら原因を教えてくれるとありがたいです。コメントお願いいたします。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です