WordPressでカスタム投稿記事の自動削除(Custom Post Type UI + Post Expirator)

カスタム投稿の記事を自動で削除したい

Custom Post Type UIで設定したカスタム投稿タイプ の記事を予約削除・非表示化できたっぽいのでその記事です。

基本自分用ですが、同じ用途の人がいれば参考になったら嬉しいです。

Post Expiratorをインストール・有効化・設定

WordPressの記事を予約削除・非公開するプラグインとして、Post Expiratorをインストールします。

プラグインの[新規追加] → Post Expiratorと検索してインストールします。
90,000+ とかのインストール数になってるやつ(2020-06-26現在)です。

インストールが完了したら有効化します。

有効化した後、ダッシュボードの設定にPost Expiratorの項目が追加されます。

僕がやった設定はこちら。最小限ですが…。

  1. 一般設定
    → 初期設定期間:カスタムに変更

  2. 一般設定
    → Custom:[ ] の部分に、PHPのstrtotime関数と同じ設定で +1 day とか入れます。
    ex. 一週間なら +7 day とか。
    ※ ” ” は入れなくていいみたいです。

  3. 初期設定
    → Post Type: ○○
     有効状態:有効
     期限切れの状態:ゴミ箱へ移動
     自動有効化:有効

    ここでCustom Post Type UIで設定したカスタム投稿タイプにもデフォルトで予約削除・非表示の設定をするか選ぶことができます。
    お好みでメールで通知されるとかやったらいいと思います。

ゴミ箱の設定

この設定をしておくと、↑の設定で記事が完全に削除されるようになります。

Post Expirator の設定で[ゴミ箱へ移動]ではなく、[削除]って項目もあります。
そっちを選んでもいいのかもしれません。

ただ、僕が記事とかを削除するときに一回ゴミ箱に入ったやつをまた空にしてとかやるのがめんどい人なので。。。ここはおまけ程度です。

ゴミ箱の中に保存しとく期間を変更

ゴミ箱の中に保管された記事はデフォルトだと30日で消えるそうです。

[wp-config.php]に下記を追記すると日数の変更ができるようになります。

/*これでゴミ箱に3日間保管*/
define('EMPTY_TRASH_DAYS', 3);

/*これでゴミ箱経由なし*/
define('EMPTY_TRASH_DAYS', 0);

ゴミ箱の自動削除をキャンセル

もしゴミ箱に記事を保管しておきたい場合は[function.php]にこいつを打ち込んでおけばいいってことらしい。僕は使うことはなさそうですが…。

// ゴミ箱の自動削除をされないように設定
function disable_scheduled_delete() { 
 remove_action( 'wp_scheduled_delete', 'wp_scheduled_delete' ); 
} 
add_action( 'init', 'disable_scheduled_delete' )

スポンサーリンク