ダイナミック・パブリッシングの不具合

 前エントリーで書いたように PHP の調子がどうも悪かったのですが、その間、Movable Type のダイナミック・パブリッシング(PHP を利用した、再構築不要の動的ファイル生成)が機能しなくなっていました。PHP の調子が元に戻るとダイナミック・パブリッシングも元通りに動いてくれたのですが、動作確認をしているときにふと気がついたのだけど、月別アーカイブや個別アーカイブの『次の月』『次のエントリー』へのリンク先がすべて『最新の月』『最新のエントリー』になっているのです。具体的には <MTEntryNext><MTArchiveNext> が正しく動作しなくなっているということでしょう。

 この不具合についてはなんとなく覚えがあったのでググってみたのですが、先月にはてなブックマークしていました。

 WingMemo: MT3.32にはダイナミックで重大なバグあり & 修正方法

# diff -c mtdb_base.php.original mtdb_base.php

*** mtdb_base.php.original      Mon Feb 19 00:11:27 2007
--- mtdb_base.php       Mon Feb 19 00:12:34 2007
***************
*** 534,539 ****
--- 534,549 ----
              $limit = 0; $offset = 0;
          }

+         if ($args['sort_order']) {
+           if ($args['sort_order'] == 'ascend') {
+             $order = 'asc';
+           } elseif ($args['sort_order'] == 'descend') {
+             $order = 'desc';
+           }
+         }
+ 
+         $sort_field or $sort_field = 'entry_created_on';
+ 
          $sql = "
              select mt_entry.*, mt_placement.*, mt_author.*,
                     mt_trackback.*

 このバグが起こるのは 3.32、3.33、3.34 ということなので、先日 3.34 にバージョンアップしたときからずっと起こっていたのではないかと思います。PHP の調子が悪くてダイナミック・パブリッシングを利用できなかった期間には起こっていなかったようですが :p

comments powered by Disqus