der Gegenwart

どうでもいい雑記その298

以前から、一日に複数回更新したときに、同じ日に投稿した記事が次々に過去ログに追いやられてしまうのが気になっていた。なので、トップページには最新1日分の記事が表示されるよう、WordPressのテーマに修正を加えた。表示の処理方法的には以下の通り。

  1. データベースから最新10件*1 取得して $posts にぶちこむ
  2. 最新の記事、すなわち $posts[0] の post_date を strtotime 関数と date 関数を使って「20081210」みたいな形式に変換して変数 $recent_date に格納
  3. foreach 関数使って $recent_date とその他の投稿データの日付を比較しつつ*2 、$recent_date と同じ日付の投稿データがあったら setup_postdata() したあとで the_title() やら何やらで表示

もっとスマートな方法があるんだろうけど、とりあえずごり押し。っていうか、プラグインの Custom Query String の表示条件でdays単位指定がきちんと動作すればこんなことしなくて済んだんだよ。なんか上手く動作しなかったから自分で何とかしてみた。

で、その関係でトップページのh1要素がサイト名になった。まぁ、トップページだから別に良いか、とか。今まで記事の個別ページが一時的に二つあるみたいな感じになってしまっていたわけだし。

追記

久しぶりにWPが吐き出したHTML眺めてて気づいたんだけど、注釈付けるのに使ってる WP-Footnotes プラグインの吐き出すHTMLが猛烈に汚い。空のa要素とか許せないんだけど。気が向いたら中身覗いて何とかするか。

  1. ここで10件にしたのは、一日にどんなに更新したって10回はいかないだろう、という経験則から
  2. 当然比較するための日付データも strtotime 関数と date 関数を使って形式変換しないとダメ。