チップス

WordPress のデータが多くなったので ある日付以前のデータを削除する


WordPress のブログに毎日投稿しているとデータが多くなりすぎるので、今回は2010年12月31日以前のデータを削除する事にしました。

WordPress の投稿記事は テーブル xx_posts に書かれているので、テーブル xx_posts(datetime型) から 2011年1月1日より古い日付のデータを削除します。
 

delete from XX_posts where post_date < '2011-01-01';

この sql だと固定ページも削除してしまうので、固定ページは削除せず、投稿記事のみ削除する場合は
 

delete from XX_posts where `post_type`='post' AND `past_date`<'211-01-01';

(* 固定記事は post_type='page' 投稿記事は post_type="post')
 
wp_postmeta も関係ありそうなので、post_id をキーにして、不用なデータを削除します。
 

delete from XX_postmeta where post_id < 99999;

私が公開している WordPress のページはコメントを受け付けていないので、これだけの作業でいいですが、コメントを受け付けている場合は、プログラムを作る必要があるかもしれません。
 
本来なら wp_delete_post() を使うべきかも?
 

参考になったURL

WordPress Performance Tips for Big Sites
wp_delete_post


   チップス