web-dev-qa-db-ja.com

アップロードディレクトリから未使用の画像をすべて削除するにはどうすればよいですか。

アップロードしたフォルダは、サーバー上の空き容量が増えているため、削除しています。

DNUIやCleanup Imagesのようにプラグインを使用してこの目的を達成しようとしましたが、これらのプラグインは機能しないか、またはDNUIの場合(最近更新されて動作する)、正しい結果を達成できません。これは、私のサイトではWoocommerceと、ヘッダー、フッター、ギャラリーなどの投稿やページだけでなく、両方の場所で画像を使用するテーマを使用しているためです。まるでWCがそれを使用しているかのように思えるのですが、そこにはDNUIによって「未使用」として詳述されている画像が呼ばれています。

私はそれがちょっとした質問であることを知っています、しかし、誰かが私を正しい方向に向けることができるかどうか疑問に思いますか?私は開発者ではありませんので、おそらくここに投稿すべきではありませんが、時間と決意を持って問題を解決することができます。私はこのサイト上でDNUIプラグインと同じ結果を達成するスクリプトを見ましたが、他の画像の使用を考慮に入れるものは何もありません(それが可能であれば)。どんな助けでも大いに感謝されるでしょう。

20
G-Olly

プラグインを使って画像を削除する:

あなたはこのプラグインを使用することができます、それはあなたのデータベースを検索し、imageがどんな投稿にも挿入されているかどうかを見ます。

Imageがどこでも使われないならば、それはあなたにそれを削除するオプションを与えるでしょう。あなたはもう使用されていないあなたのサイト上のすべての画像のリストを取得するので、あなたはそれらを安全に削除することができます。

https://wordpress.org/plugins/dnui-delete-not-used-image-wordpress/

そして、これはまだ動作していますが、時代遅れでも

https://wordpress.org/plugins/wordpress-uploaded-files-cleaner/ /


手動で画像を削除する:

投稿やページに添付されていない画像をメディアライブラリから検索することもできます。

メディアライブラリに移動して[未添付]をクリックすると、サイトの他の部分に表示されているか使用されていない可能性があるすべての画像が表示されます。

4
Advanced SEO

Cron/ScheduledタスクとDBクロールはあなたの友達です

それはプラグインである必要があります、あなたはそれをwp_cron間隔に割り当てることができます、上で提案されたものとあまり違いはありませんが、「post_content」のようなフィールドをチェックすることを追加します(WP環境)画像のURI/URL用。これは、システムのプロセスに非常に時間がかかる/負担がかかる可能性があります-現実的には、このプロセスは、1日または週に1回実行するだけで済みます-より頻繁に実行する他の法的/ビジネス上の理由がないと仮定します。

ソースのマスタースレーブDB構成により、このプロセスのパフォーマンスが大幅に低下することはありませんが、それはこの質問の範囲を超えていると思います。

3
Brandt Solovij

Image Cleanup プラグインを試してみましたが、それが最善ですが、それでも最初にバックアップを作成することをお勧めします。

2
cowboy14

アップロードしたファイルについてはwp-content/uploadsフォルダをスキャンし、次にそれらのファイルへの参照についてデータベースをスキャンし、最後にそれらを一致させる必要があります。一致できないものは削除しても安全なはずです。

データベーススキャンは難しい部分です。ほとんどのファイル参照は、標準のWordPress機能/ APIを使用してアクセスできるメディアライブラリ内に格納されています。しかし、メディアライブラリから削除されたがまだ投稿によって参照されているファイルはどうなりますか?それとも他のプラグインが異なる方法でリンクしているファイル?

私はかなりの数のテストをしました、そして私が集めたものから、すべてのファイル参照はプレーンテキストフォーマット(すなわち単にファイルパスまたはURLに等しいテーブルセル)、HTMLフォーマット(すなわち投稿の内容)のどちらかで保存されますシリアル化されたデータとして、または最後にJSONオブジェクトとして。データベース全体をスキャンして、各セルで使用されている形式を推測する必要があります。もちろん、いくつかのプラグインがそれらのファイルへの参照を保持するために使用している他のエキゾチックな方法があるかもしれませんが、それらはケースバイケースでのみ処理することができます。

その結果、私は私達の顧客のウェブサイトのいくつかにそれを必要とし、そしてそれを Theia Upload Cleaner と命名したので、私は自動的にそれすべてをするプラグインを書きました。それは私にはうまくいきましたが、もちろん、あなたはいつもこのようなことを試みる前にバックアップをとるべきです。

1
liviucmg