時代の波に押されて?ここんところWord Pressをいじってます。
でまぁ、使い慣れたMovable Typeとの違いで四苦八苦してるわけですが、まぁそれは置いておいて、規定の日時を過ぎたら自動的に投稿を削除するプラグイン「auto-delete-posts」のメモです。
まずは、WordPress › Auto Delete Posts « WordPress Pluginsからプラグインをダウンロード。
開発者のページにも置いてあるのですがそちらはバージョンが古いようなので、こちらからいただきました。
- プラグインをダウンロードしたら、/wp-content/plugins/の中にアップロード。
- 管理画面の設定画面のサブメニューに「Auto Delete Posts」が追加されているのでクリック
- Plugin Action?を選ぶ
- Delete : 規定日数経ったら削除。
オプションで、削除するカテゴリーが選択できる。All Categoryならもちろんカテゴリーに依存せず全部削除。 - Move : 規定日数経ったら、選択したカテゴリーに移動。
- Preview : 規定日数が経った投稿を、この設定画面の「Post Delete Options」に一覧で確認して[delete]を押したら削除(ここで削除するまで消えません)
- How long (in days) to keep posts:で、投稿を保持する日数を設定(3だったら3日たったら削除になる)。
- この設定が終わると、(1)新規投稿をするか、(2)既存の投稿を編集/削除するタイミングで、設定した通り投稿が削除される。
これで、基本的な設定はおしまいです。
ただ、自分的に投稿/編集に限らず自動的に削除したいと思ったので、テンプレートの方にちょっと手を加えました。
テンプレートテーマのindex.phpの一番最初の行に下記の一行を追記
<?php wpadp_check_and_delete_posts(); ?>
単純にいうと、トップページが開かれるタイミングで、このプラグインの削除機構を発動させるという安直なことです。サーバへの負荷などを考えるとおまりスマートじゃないと思いますが、僕のサイトはそこまでアクセスないので…。
それと、サーバ環境がPHP4なのですが、PHP5でかかれているのかうまく動作しなかったので、PHP 5 -> 4 converter(参考:phpspot開発日誌さん)コードを変換してうまくいきました。