WordPress2.2で日付を昇順にする

WordPress2.2で、カテゴリー別や月別表示で、記事を日付の昇順に表示するためのカスタマイズ方法を、検索エンジンにひっかかるようにここに記しておく。
WordPressでは、カテゴリー別や月別表示にすると、デフォルトでは日付は降順で表示される。つまり、最新の記事から古い記事へと表示される。
ただ、カテゴリー別や月別表示にしたとき、古い記事から順に読みたいという読者も少なくないはずだ。
これを実現するには、「wp-include」フォルダ内の「query.php」というプログラムに、数行のコードを追加すればよい。
1060行目あたりに、下記のようにMySQLに向かって記事を検索するSELECT文を組み立てている箇所がある。
$request = ” SELECT $found_rows $distinct $fields FROM $wpdb->posts $join WHERE 1=1 $where $groupby ORDER BY $orderby $limits”;
この直後に、このSELECT文の中に、カテゴリーの抽出条件や、年月による抽出条件が含まれる場合に、SELECT文内の日付によるならびかえを、降順から昇順に変更するコードを追加すればよい。
僕が追加したのは、下記のようなコードだ。
if (strpos($request, ‘category_id IN’) > 0 ||
strpos($request, ‘MONTH(post_date)=’) > 0) {
$request = str_replace(‘post_date DESC’, ‘post_date ASC’, $request);
}
ややいい加減だけれども、「category_id IN」という文字列や「’MONTH(post_date)=」という文字列が現れるのは、WHERE句に決まっているので、前者が含まれる場合はカテゴリー別表示をしようとしているとき、後者が含まれる場合は年月別、または、年月日別表示をしようとしているとき、と考えて差し支えないはずだ。
応急処置的なきらいはあるが、とりあえず所期の目的はこれで達成されている。