WP-CLIを使って未使用の画像を一括削除する

  • ブックマーク
  • -
    コピー
WordPressは自動的にさまざまなサイズの画像を生成します。そのためwp-content/uploadsのディレクトリには膨大な画像ファイルが存在することになりますが、その中でも実際には使っていない画像も多数存在します。 今回はWordPressにはアップロードしているけど使っていない画像を一括で削除する方法について解説します。

未使用画像を一括削除する前提条件

  • WP-CLIを利用している
  • ターミナル (シェルコマンド) が使える
  • uploadsのバックアップがある

未使用画像を一括削除する

未使用画像の一覧を取得する

まずは未使用画像の一覧を取得しましょう。WP-CLIが実行できるディレクトリで下記のコマンドを実行します。

wp post list --post_type='attachment' --format=ids --post_parent=0 --post_mime_type='image/jpeg'

上記の wp post list コマンドでは該当するWordPressのポスト一覧を出力してくれます。attachment (メディア) であること、形式が画像であること、添付 (利用) されていること、ポストのIDを出力することというオプションが付与されています。
実行した出力結果

ポストIDから一括で画像を削除する

このように未使用の画像のポストIDが出力されるので、その値をコピーし削除コマンドを実行します。0001などとなっている値は上記で取得した未使用画像のポストIDと差し替えてください。

wp post delete 0001 0002 0003 0004

削除された時の様子
また後述のエラーが表示されている場合は –force オプションを付与しましょう。attachmentはゴミ箱への送信をサポートしていないたゴミ箱にはいれず–forceフラグをたててそのまま削除します。

Posts of type 'attachment' do not support being sent to trash.
Please use the --force flag to skip trash and delete them permanently.

まとめ

WP-CLIを使うと管理画面から1つ1つ画像を削除しんくても画像を削除することができます。また投稿の中で利用されていない画像でもウィジェットなどで利用されていることもあるため注意が必要です。 その他にもWP-CLIを使うと管理画面を使わずに効率よく一括作業をおこなうことができるのでWordPressを利用する上で必須のスキルといえるでしょう。
WP-CLIで添付していない画像を一括で消す方法についての質問と回答
WP-CLIのwp post delteの説明
  • ブックマーク
  • -
    コピー

この記事を書いた人

Susumu Seino

1988年 東京都足立区生まれ。瀬戸内海の小島と東京に拠点を持ち、2020年からは夫婦でアドレスホッピングを計画しているデジタルノマドな日本人。デジタルパブリッシング代理店のアニューマの創業者です。