WordPressで過去の記事を一気に消したいなあ…と思った時にはプラグインを使う方法がありますが、結構時間がかかるし、時間がかかりすぎてタイムアウトになったり…。
あー、どうしたらいいんだ!とお悩みの皆さんお待たせしました~。
MyPhpAdminが使えれば投稿した記事はSQL文を投げるだけですっきり消すことが出来ますよ。
投稿した記事や関連のデータが納められているテーブルは wp_postsと wp_postmetaの2つのテーブルです。
まずはwp_postsテーブルからデータを消します。
例えば、「2017年1月1日以前のデータを消す」場合、以下のようなSQL文になります。
DELETE FROM wp_posts WHERE `post_date` < '2017-01-01 00:00:00'
これで2017年1月1日より前に投稿されたデータは削除されましたので、テーブルの中身を見てみます。
IDでソートして一番数字が小さいものを探します。探したらそのIDをメモします。
次にもう一つのwp_postmetaテーブルからのデータ削除です。こちらのテーブルは日付がないため、先ほどメモしたIDを使います。
wp_postsテーブルではそのIDより小さいデータは消してしまってないので、wp_postmetaテーブルでもそのIDより小さいデータを消します。
メモしたIDが12345の場合は以下のとおりです。
DELETE FROM wp_postmeta WHERE post_id < 12345;
以上で過去データの削除は完了です。
SQLを工夫することで、もっと違う条件で削除することもできますが、ここから削除されると復元できませんので、慎重に。
またくれぐれも自己責任で!削除前にはデータベースやテーブルのバックアップもお忘れなく。