2008年10月04日
MovableType 3.3系でダイナミックパブリッシングの「次の記事」がおかしい
MovableType 3.3系のダイナミックパブリッシングを使うと、おのおのの indivisual.html で「次の記事」がおかしい挙動を示すようになる。具体的には、どの記事からの「次の記事」のリンクも最新の記事のパーマリンクを指し示すようになってしまう。MTEntryNext と MTArchiveNext の挙動がおかしいと言うことになるのだが、これを修正したい。
これは、/mt/php/lib/mtdb_base.php のバグが原因である。MovableType 3.2 では修正されていたはずの昔の MTEntryNext と MTArchiveNext タグに関するバグが、3.3系になって再び出てきたものだ。以来、MovableType 3.3系はたびたびのバグフィックスを出しているが、この mtdb_base.php の異常は MovableType 3.37 まで修正されずにいる。SixApart 社の意識は完全に MovableType 4.2系に向いているから、3.37 以後の MovableType 3.3系はもうリリースされないだろう。このバグは自分で直すしかないようだ。
mtdb_base.php をテキストエディタで開いて、536行目と537行目に必要な記述を追加しよう。
if (count($filters)) { $post_select_limit = $limit; $post_select_offset = $offset; $limit = 0; $offset = 0; }$sql = "
536行目付近は上記のようになっているはずだが、これを下記のように修正する。赤字フォントの部分を追記してやると良い。
if (count($filters)) { $post_select_limit = $limit; $post_select_offset = $offset; $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 = "
Posted at 2008/10/04(土曜日) 7:26
コメント
トラックバック
このエントリーのトラックバックURL:
