お品書き
書き直し中…
とりあえず、中へどうぞ
↓↓↓
スポンサーリンク

【WordPress】DNUIの使い方【未使用画像をDBから一括削除】

WEBデザイン
WordPressでは、メディア(画像)のアップロードを行うと、一枚の画像に対して何枚かの縮小画像(サムネイル画像)を自動生成します。(自分た試してみたところ、「100*100」「150*111」「150*150」「300*221」「320*180」のご種類の縮小画像ができます。テーマによって違うのかも知れませんが、原理はいまひとつ良く分かっていません。)

WordPressのダッシュボードにあるメディアライブラリから見ても、この縮小画像の存在は見えません。

しかし、FTPでuploadフォルダを見てみると、大量に「ファイル名-150x150.jpg」「ファイル名-320x180.jpg」というようなファイルがあるのが見えます。

WordPressの記事作成画面で、「メディアを追加」ボタンから画像を選択する際に、「添付ファイルの表示設定」の中にある「サイズ」のところのドロップダウンから、縮小画像を選択する事ができます。

(縮小画像がない場合は「フルサイズ-1024x768」など、ひとつだけしかリストに表示されません。)

この自動生成を止める方法は、検索してみると、ダッシュボードから「設定」→「メディア」と進み、「サムネイルのサイズ」「中サイズ」「中サイズ」の幅と高さをすべて0にしてしまえばよい、と言う情報が出てきますね。


※ただ、テーマによっては縮小画像があることを前提にそれを利用したデザインをしている場合がありますので、生成しないようにしてしまうとデザインに影響が出る場合があるそうです。

現時点でこの記事は「Simplicity2」を使っていますが、Simplicityはサムネイル画像をデザインに使用しているので、生成しないようにするのはよくないようです。

多分、大きなサムネイルを使ったトップページ(記事リスト)などを使う時に、サムネイル画像を利用しているのではないかと予想していますが、あまり詳しくは理解していません。

が、私はその事を知らずにずっと記事を書いていまして、UPLOADする画像も上記の設定をしてサムネイルを生成しない状態のまま続けていましたが、特に問題は出ていないようなので、現状のデザインであれば問題ないという事ですね。

WordPressの場合はサムネイルが生成されるのが当然なので、特に意識せずそのまま使えば良いのかも知れません。(それで問題が出るようなサーバー容量だと、そもそもWordPressを使うのにはスペックが足りないと考えるべきなようです。)

で、FTPで自動生成されたサムネイル画像を発見すると、削除してしまいたくなりますが(笑)

しかし、FTPで画像を削除してしまうとWordPressでは問題が起きます。

WordPressはデータベースで記事データを蓄積・管理しています。それゆえ、FTPで画像をアップロードしても、それだけでは画像はWordPressのライブラリには表示されないわけです。逆に、登録された画像をFTPで削除してしまうと、ファイルは削除されますが、データベースには記録されたデータがそのまま残ってしまうのです。

まぁデータベースにゴミデータが溜まったところで大した問題ではないかも知れませんが・・・

サーバー容量は単純にディスクの大きさの問題ですが、パラノイア的かもしれませんがデータベースは怖いイメージがありますね(^_^;)

DBというのは大きくなるほど処理が重く、またエラーが起きる確率も高くなりそうな気がするので、やっぱりゴミは削除しておきたい・・・

そこで、DNUIというデータベースから未使用画像を抽出して削除できるプラグインを使ってみました。


インストールするだけで、メディアタブを開くと未使用の画像が検索されリストアップされます。そこからDELETEボタンを押すと不要な画像ファイルが削除されます。画像が削除されるだけでなく、DBからもその記録を消してくれるので便利ですね。

が・・・

使ってみて、ちょっと問題があることが発覚しました。

記事中に使われている画像はチェックしてくれるのですが、記事中に使われずアイキャッチとしてしか使われていない画像は「未使用」扱いにされてしまうようなのです。

最初、良く分からないで削除してしまったので、いくつかアイキャッチ画像が消えてしまった記事が出てしまいました。

それは困る・・・と言う事で、オプションを調べてみる。英語のオプション画面を翻訳サイトを駆使しながらがんばってちゃんと読んでみた。









ポイント:「Ignore size list」で「original」を反転させておけば、オリジナル画像は削除できなくなります(リストには表示されるが「DELETE」ボタンが表示されない)ので、サムネイルだけを削除できますね。

ページごとに一括で削除はできるのですが、データベース全体から一括で削除する機能はないので、リストのページ数分ALL DELETEを繰り返すしかありません。



気長にポチポチ・・・50件×50ページくらいあったので、2500件くらい、なんとか終了。

しかし、FTPで確認してみると、サムネイル画像がまだ残ってる。初期の頃生成されて、なんらかの加減でDBに登録されていなかったものがったのかも???これはFTPから直接削除してしまおう。。。

さらに、「Show used image」のチェックをオンにして再度リストを表示させてみると・・・USEDになっているのに、「In server」が「 × 」になってる画像がいくつか・・・これは、記事中で使われているのに画像がない状態ですね。(FTPで使ってる画像を削除してしまったりするとそうなる。)

一旦DBからは全部削除して、再度、画像をUPLOADして画像のリンク切れがないように修正・・・

して完了!

※改めて画像をuploadして確認したところ、Simplicity2では、設定→メディアでサイズをすべて「0」に指定してもサムネイルが生成されるようです。

これを止める方法はいまのところよく分かりません。(そもそもSimplicity2ではサムネイルの生成を停止するのは非推奨)

私の場合は、よく分かっていないうちにFTPで画像を削除したりUPLOADしたりしてしまって、DBとuploadフォルダの画像と整合性が取れなくなっていたので、整理してよかったと思いますが

(私はサムネイル画像を一切利用しないで記事を書いてきたので、サムネイルを全て削除してもとりあえず問題なさそうだと思ってやってしまいましたが・・・)

本来、サムネイルは自動生成されてそのまま保存されているのが普通なわけで。WordPress上から普通に操作している分には必要ない作業ですね・・・(笑)

DNUI自体が「使われていない画像」を探して削除するものであって、サムネイルだけ削除するものではないですね(^_^;)


余談ですが、DNUIを使ってサムネイルを削除したあと確認してみたら、アイキャッチ画像の幅・高さが縮小されて表示されるようになりました。(横長の画像でも横幅が縮小された状態で正方形になって表示される=widthが100%になる?)

サムネイル画像がある状態だと、アイキャッチ画像は指定画像の真ん中から正方形に切り抜かれる形になりますね。

要するに、この状態になっているわけですね(^_^;)
Simplicityテーマをインストールして画像のアスペクト比が狂うときにやって欲しいこと
ver20140808のバージョンアップで、CSSでサムネイルを無理やり正方形にするようにしたので、アスペクト比が狂うだけになりました。このように、正方形に表示されない原因は画像のサムネイルがWordpress側で作成されてないことが原因です…
wp-simplicity.com
要するに、自動生成されるサムネイルを削除するな、と言う事ですね(笑)

まぁサムネイルは削除してしまっても「Regenerate Thumbnails」を実行すれば再生成する事ができますので、慌てる必要はないですね。(縮小表示されるのも面白いので、私はこのままでよいかな?笑)

逆に、サムネイルが生成されないように(または常にサムネイルの縦横比が100%を維持する設定に)するにはどうしたらよいのだろう・・・?(^m^;)
(※画像をuploadするたびにDNUIでサムネイルを削除してしまえば良いのですが、面倒ですね。。。)
多分、テーマの改造が必要になると思われるので、割りとどっちも良い話なので、気軽試す感じではないですね・・・(笑)

コメント