私の環境下固有の話かもしれませんが…recently_commented_on オプションの挙動がおかしいのですよ。

■環境 → レン鯖:ロリポップ MovableTypeヴァージョン:Version 3.2-ja-2 DB:SQLite

どうおかしいかというと、1年前ぐらいのエントリーに最近ついたコメントが、最近のコメント画面で表示されない。フィルターに引っかかってるのかと思ったんだけど、MTのシステム画面では公開状態になってるし、それなら、再構築が上手くいかなかったのかな?と思って再構築してみても表示されない。こりゃー、DB壊れたかなとちょっと心配になってググってみたら…こんなんありました。

Hiro’s Bar – B-Wiki – recently_commented_onが正しく機能しない

ふーむ。なるほど…。私、とーしろーなのでソースの意味はわからないのですが、どうもソートの順序が上手く機能しないようですね。ただ、ここに書いてあるのは PostgreSQL をバックエンドにした場合のことだけだったので、SQLiteはどうかわからんと。もうちょっと調べてみると、Lolipop+SQLite で同様の症状が生じてる人を発見。

Everyday, “Albi”day: recently_commented_onの挙動不審について

という事は、DB が壊れてるわけじゃないのねと一安心。じゃぁ、このままにしとくか…ていうのも何か気持ち悪いので、ソースを書き換えようかとも思ったけど、そんなスキルも無い。仕方ないから、今回の 3.2-ja → 3.2-ja-2 へのヴァージョンアップで変更された、recently_commented_on を扱うファイル /lib/MT/Template/ContextHandlers.pm を 3.2-ja のファイルへ差し替え。無事表示されました。(笑)

元々、3.2-ja-2 のリリースは、Berkeley DBの環境下での3.2の不具合を修正したもので、それに加えてrecently_commented_onの処理を見直し、パフォーマンスが低下していた現象を修正したらしいので、Berkeley DB を使用していないのであれば、無理してあげる必要なかったんですよねぇ…。

エディタで 3.2-ja と 3.2-ja-2 の ContextHandlers.pm の内容比較してみたんだけど、873行目あたりから違ってたので、誰かいじれる人、チャレンジしてくらさい。(人任せ:笑)