自動下書きの怪

WordPress 3.0から新規投稿を作成する段階で自動下書き (auto-draft) というステータスでデータベースに追加されるようになりました。これまでは下書き (draft) を保存する(タイトルを入力した時点での自動保存も含む)までデータベースには保存されず、そのためプレビューを行った時などに問題があったため、このような仕様に変更されたようです。

この自動下書きは、下書きとして保存されたり公開されたりした時点でそれぞれのステータスに書き換えられるため、リビジョンとは違ってデータベースのリソースを無駄に消費しないようになっています(それが嫌で私はリビジョン機能は切ってますし、自動保存の間隔も長くしています)。新規投稿を途中でやめてしまうと自動下書きがデータベースに残りますが、古くなった自動下書きは削除されるようになっています。

ところが、データベースを覗いてみると、常に自動下書きが1つ存在します。新規投稿を途中でキャンセルしたためのものではなく、phpMyAdminでデータベースから直接削除しても、直後にまた作成されています。新規投稿を作成する際にはこの自動下書きは使用されずにまた新たな自動下書きが作成されそして通常の投稿として保存されていくので、常にこの自動下書きがデータベースに残っています。ある程度時間が経つと先に述べたクリーンアップ機能により削除されたみたいですが、今度はまた別の自動下書きが作成されてそして使用されることもなくしばらく存在し続けます。

実害はないので放っていたのですが、やはりちょっと気になるので調べてみました。WordPress 3.0を新規インストールまたは3.0にアップグレード直後から、ダッシュボードにアクセスした時点でこのような自動下書きが作成されているようです。どうもダッシュボードが怪しいと思ってソースコードを読み解いていったところ、犯人はクイック投稿でした。ダッシュボードのクイック投稿フォームが表示される際に、データベース内に自動下書きが一つもない場合には作成し、これをクイック投稿用にキープしているみたいなのです。

投稿のIDを無駄に消費したりIDが必要以上に不連続になるのは嫌ですし(細かいこだわりですが)、クイック投稿は個人的に全く使用しないので、ダッシュボードのクイック投稿を表示しないように設定してみたところ、自動下書きが勝手に作成されないようになりました。もし私と同じように気になっている方がいましたら、お試しください。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください