Movable Typeのサイトをバックグラウンドで再構築出来るmt-rebuildというものがあります。
作られたのがずいぶん前のようで(Ver3時代?)その後手直しされていない模様
今(Ver5.0)まで特に不自由なく使い続けることが出来ていたので、普通に使っていたんですが、ふと先日思い立ってカスタムフィールドを使い始めてみたら動かなくなった
こいつは何かあるんだろうなぁ~とググりまくって調べてみたら同じような症状で悩んだあげく諦めモードの人も多いよう??
まぁ私のように意地でも使いたいと言う人が少ないだけなのでしょうが
当初はmt-rebuildを諦めてrebuild-pagesを使おうかと思ったんですが、Perlのモジュールが正常に読み込めまへん・・・と怒られてしまいました
共有型のレンタルサーバなので追加するわけにも行かず・・・
と言うわけで意地でもやろうとチャレンジしてみました
全ては確認してないですが、問題はここ↓
$mt->rebuild( BlogID => $blog_id, NoIndexes => $no_indexes )
Movable Typeのリファレンスを読む限り5.0で仕様が変わって使えないと言うわけじゃないのは確かそう。
- Movable Typeリファレンス - http://www.sixapart.jp/movabletype/manual/object_reference/archives/mt.html
さてどうしたものかと悩んで調べまわるとこんな記事発見
- Mt4.1, Mt-rebuild, Custom Fields - http://forums.sixapart.com/index.php?showtopic=64880&st=0&p=259435&#entry259435
なるほど・・・一回初期化しないといけないのか
と言うわけで、mt-rebuild.plをこんな風に変更↓
befor
80 } elsif ( $mode eq 'all' ) {
81 $mt->rebuild( BlogID => $blog_id, NoIndexes => $no_indexes )
82 || die "Rebuild error: ", $mt->errstr;
after
80 } elsif ( $mode eq 'all' ) {
81 $mt->run_callbacks('init_app', $mt);
82 $mt->rebuild( BlogID => $blog->id, NoIndexes => $no_indexes )
83 || die "Rebuild error: ", $mt->errstr;
要するに$mt->rebuild系の処理の前で$mt->run_callbacksをしてinit_appしてあげれば良いみたい。
とりあえず、それっぽく解決出来て良かった
ちなみにmt-rebuildに関してはここ↓がわかりやすいです。
Movable Type 備忘録 - http://bizcaz.com/archives/2006/08/09-221138.php
コメントする