投稿が表示された回数を、single.phpのタイミングでカウントしようとした。MySQLにテーブルを作成して、postIDと参照回数を記録していく。ところがpostID=1の記事を表示した際に、postID=1とpostID=4の2行更新される。1の次は4が登録されていることに関係があるのか。なぜかsingle.phpが2回呼ばれているようにみえる。
defaltテーマでも再現するため、プラグインを疑ってみた。「Top Level Categories Fix」を無効にすると、single.phpは1回しか呼ばれなくなった。これは、パーマリンクの設定がカスタム構造(/%category%/%postname%/)になっているときに、URLから”category”を削除するプラグインだ。そもそもカテゴリ名を含んだパーマリンクは非推奨ではあるが。CMSとして利用する場合にURLにIDや日付が入っていてはかっこ悪いため、「Top Level Categories Fix」を有効にすることが多い。
うまく回数を数える方法はないものか。