WordPressを利用していて、削除した投稿を後日復活させようと思ったら消えて無くなっていました・・・。
お客様のサイトで新着情報に「GWはお休みします」のようなメッセージを表示し、GWが終わったからメッセージを削除しました。
翌年同様のメッセージを表示してくれと言うので削除したものを日付だけ変えて表示すればいいかと思ったら消えていたという感じです。
メッセージくらいまた作ればいいので問題ありませんでしたし、僕も削除では無く非公開にしておけばよかったかなと思います。
でも、非公開だとログイン者には表示されてしまうのでややこしいんですよね。
年末年始、GW、お盆くらいしかメッセージを出しませんが、削除したものを自動で完全削除する設定を停止し、都度使いまわすようにしたときの対応です。
削除したものは7日で自動で完全削除される
初期設定のままだと削除した投稿は30日で完全削除され復元出来なくなります。
不要なデータが必要以上に溜まらないようにし、WordPressを軽くする為の設定だと思われます。
なので削除したデータが本当に不要なものの場合は自動で削除してもらったほうが良いでしょう。
ステータスを「下書き」や「保留」にすることで自動で完全削除されず、表にも出ないようにも出来ます。
自動で完全削除を停止する設定
1 2 3 4 |
function remove_action_schedule_delete() { remove_action( 'wp_scheduled_delete', 'wp_scheduled_delete' ); } add_action( 'init', 'remove_action_schedule_delete' ); |
remove_action() という関数は、WordPressのアクションフックを削除するための関数です。
1つ目の wp_scheduled_delete が、完全削除までのスケジュールを管理するアクションフックで、2つ目の wp_scheduled_delete が実際にスケジューリングする関数です。
自動で完全削除を停止までの日数を変更する方法
完全に停止すると不要なデータが溜まり続ける恐れもあります。
そんなときにはゴミ箱内に残しておく期間を変更する方法もあります。
この設定はちょっと難しく、WordPressのインストールディレクトリ内にある wp-config.php を変更します。
FTPクライアントなどのツールを使わないと操作出来ません。
変更の内容は下記コードを追加するだけです。既にある場合は数値の変更だけで良いです。
1 2 |
// ゴミ箱の保管期間を変更 define('EMPTY_TRASH_DAYS', 365); |
上記コードの365は、365日間保管するということです。
ちなみに0にした場合は、削除後ゴミ箱に移動せずにすぐに完全削除されます。
まとめ
プログラムに慣れていない方は function.php を修正する方法をおすすめします。
wp-config.php はWordPressの設定を行うプログラムのため、下手にいじると壊れる可能性もあります。
wp-config.php を修正する場合はバックアップなど必ずとりましょう。
コメントを残す