<危険>この記事は2008年9月10日に書かれたもので内容が古いです。

時代の波に押されて?ここんところWord Pressをいじってます。
でまぁ、使い慣れたMovable Typeとの違いで四苦八苦してるわけですが、まぁそれは置いておいて、規定の日時を過ぎたら自動的に投稿を削除するプラグイン「auto-delete-posts」のメモです。

まずは、WordPress › Auto Delete Posts « WordPress Pluginsからプラグインをダウンロード。
開発者のページにも置いてあるのですがそちらはバージョンが古いようなので、こちらからいただきました。

  1. プラグインをダウンロードしたら、/wp-content/plugins/の中にアップロード
  2. 管理画面の設定画面のサブメニューに「Auto Delete Posts」が追加されているのでクリック
    Auto Delete Posts設定イメージ
  3. Plugin Action?を選ぶ
    1. Delete : 規定日数経ったら削除。
      オプションで、削除するカテゴリーが選択できる。All Categoryならもちろんカテゴリーに依存せず全部削除。
    2. Move  :  規定日数経ったら、選択したカテゴリーに移動。
    3. Preview : 規定日数が経った投稿を、この設定画面の「Post Delete Options」に一覧で確認して[delete]を押したら削除(ここで削除するまで消えません)
  4. How long (in days) to keep posts:で、投稿を保持する日数を設定(3だったら3日たったら削除になる)。
  5. この設定が終わると、(1)新規投稿をするか、(2)既存の投稿を編集/削除するタイミングで、設定した通り投稿が削除される。

これで、基本的な設定はおしまいです。
ただ、自分的に投稿/編集に限らず自動的に削除したいと思ったので、テンプレートの方にちょっと手を加えました。

テンプレートテーマのindex.phpの一番最初の行に下記の一行を追記
<?php wpadp_check_and_delete_posts(); ?>

単純にいうと、トップページが開かれるタイミングで、このプラグインの削除機構を発動させるという安直なことです。サーバへの負荷などを考えるとおまりスマートじゃないと思いますが、僕のサイトはそこまでアクセスないので…。

それと、サーバ環境がPHP4なのですが、PHP5でかかれているのかうまく動作しなかったので、PHP 5 -> 4 converter(参考:phpspot開発日誌さん)コードを変換してうまくいきました。