WordPressで記事を削除するのに使えるSQL文

Posted on カテゴリー:

WordPressにて記事の一括削除は管理画面から行うと、非常に時間がかかったり、途中で真っ白になって止まってしまったりする事があります。

このような場合に、スムーズに一括削除することができるSQL文を紹介致します。

 

 

 

カスタム投稿タイプの記事全てを削除する

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'カスタム投稿タイプ名'

 カスタム投稿タイプ全体を削除致します。また、「カスタム投稿タイプ」と日本語で書かれている部分を「post」に変更すると投稿を全て削除する意味となります。「page」にすると固定ページを削除するという意味になります。

全ての記事を削除するのと同時に、その記事に関連しているDB情報も削除します。
記事のカスタムフィールド情報(postmeta)、タームにリレーションのためにリンクしている情報なども削除されます。

 

リビジョンの記事全てを削除する

DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

リビジョンの削除です。こちらは、WordPressのDB最適化のプラグインなどを使用したほうが簡単に実行できるかもしれません。