ニケッチャニッキ

はてなブログ・WordPressカスタマイズ・Androidプログラミング

WordPressでサーバーからサムネイルを削除したときの失敗談

Regenerate Thumbnailsでサムネイルの掃除をしたんですが、なぜかゴミが残ってしまって…

残ってしまったゴミをサーバーから削除したんですけど、そしたらメディアライブラリが悲惨なことになりました。

空白画像がずらっと並んだ状態。でもメディアの詳細ページでは表示される。

WordPressはメディアの情報をデータベースで管理していて、ファイルだけ消してもデータベースの情報は残ったまま。

メディアライブラリがデータベースの情報を元にサムネイルを取得、でも実際は存在してないから画像が表示されない状態になっていました。

サイトの表示上は問題ないんですが、管理が大変になってしまうので解決策を探してみました。

WordPressから特定のサムネイル画像を削除する方法

メディアライブラリから画像を削除すると、オリジナル画像とそのサムネイルが全てサーバーからもデータベースからも削除されます。

でもサムネイルだけ削除したいってときはメディアライブラリの機能ではできません。

そこで便利なのがDNUI(Delete Not Used Image)というプラグイン。

本来は使用されていない画像を一括で削除できるプラグインのようですが、一括は危険です!アイキャッチにしか使われていない画像まで削除されてしまうらしいです!

DNUIを使って個別削除する方法

下記の画像のように画像リストが表示されるので、消したい画像の「Delete」ボタンをクリックします。

私のようにサーバーのファイルだけ消してしまったという人は「In Server」が×になっているもの(サーバーにないけどデータベースにあるもの)を削除していきます。これでサーバーとデータベースの整合性が取れました。

このプラグインを使えば「この画像のこのサイズだけ消したい」とかいう柔軟なこともできるようになります。