- 実践 WordPress ホーム
- 投稿の編集
WordPress で特定の投稿タイプの投稿を一括削除する方法
WordPress で特定の投稿タイプの投稿を一括で削除する方法を説明します。 今回は 2 つの方法をご紹介します。
確認時のバージョン
- WordPress
6.6.1
- WP-CLI
2.11.0
A) 管理画面の一覧ページを使う方法
ひとつめは管理画面の投稿一覧ページを使う方法です。
- 管理画面にログインする
- 対象の投稿タイプの投稿一覧ページを開く
- 投稿: サイドメニューの「投稿」をクリック
- 固定ページ: サイドメニューの「固定ページ」をクリック
-
削除したい投稿のチェックボックスにチェックを入れる
-
セレクトボックス「一括操作」で「ゴミ箱へ移動」を選択して「適用」ボタンをクリック
デフォルトで用意されている「固定ページ」や「投稿」のような、「ゴミ箱機能」をサポートしている投稿タイプの場合は、投稿データがすぐに削除されるのではなくいったんゴミ箱に移動します。
ゴミ箱に移動された投稿は 30 日間保管された後に自動的に削除されますが、すぐに削除したい場合は手動での削除も可能です。
Note
ゴミ箱からも削除されたデータは物理的にデータベース内からも削除されるので、復元できません。
元に戻す可能性のある投稿はゴミ箱に移動したり削除したりするのではなく下書き状態で残しておくようにしてください。
B) WP-CLI を使う方法
WordPress のコマンドラインツール WP-CLI を使う方法です。 こちらはターミナルでの操作に慣れた方向けです。
例えば、デフォルトの投稿タイプ「投稿」の投稿を全件削除するには次のコマンドを実行すれば OK です。
# post の投稿を全件ゴミ箱に移動する:
wp post list --post_type='post' --format=csv --field=ID \
| xargs -I {} wp post delete {}
wp post list
: 投稿データを出力するwp post delete
: 指定された ID の投稿データを削除する
ゴミ箱を経由せずに強制削除したいときは wp post delete
コマンドに --force
オプションをつければ OK です。
# post の投稿を(ゴミ箱を経由せずに)強制削除する:
wp post list --post_type='post' --format=csv --field=ID \
| xargs -I {} wp post delete --force {}
Note
このコマンドは少しでも間違って使うと深刻なデータロスが発生するリスクがあるため、事前にバックアップを取ってから作業を行うことをおすすめします。
おまけ: 上書きされたテンプレートパーツを全件削除する
テンプレートパーツはデータベース内では wp_template_part
という名前の投稿タイプとして管理されています。
そのため、 --post_type
に wp_template_part
を指定すれば保存(上書き)されたテンプレートパーツを全件一括削除することができます。
wp post list --post_type='wp_template_part' --format=csv --field=ID \
| xargs -I {} wp post delete --force {}
出力サンプル:
WordPress リファレンス
- wp post list – WP-CLI Command | Developer.WordPress.org
- wp post delete – WP-CLI Command | Developer.WordPress.org