wordpressの投稿記事のページ送り順

2010年10月4日

wordpress2.9.2のカスタマイズをしていて、ちょっとはまったのでメモ。

状況

原因

遷移先のpostIDを取得する /wp-includes/link-template.php 中の get_adjacent_post で作成されるSQL文中の条件が、post_date < 現在のpostIDのpost_date という風になっており、つまり同時刻に登録された記事は遷移対象となっていなかった。
一括流し込み時には、post_date=now() にしてしまっていたため、流し込む際に同時刻での登録が多発していた。
wordpressの仕組みをすっかり忘れて登録バッチを組んでしまったという単純ミス。

対処

一括流し込みのバッチを、本日の登録記事がある場合には、その日付+1秒から、そうでない場合には、本日の00:00:00から、post_dateを+1秒しながら登録するように修正。
1日に、60秒×60分×24時間=86400件しか商品情報登録が出来ない条件が発生するものの、運用上は問題ないと判断。