Web Application Security Memo

ウェブセキュリティに関するメモ書き

WordPress: アップロードした画像を過去の画像に置き換える方法

※当サイトにはプロモーションが含まれています。

公開日: 更新日:

WordPress

WordPress(v3.8.1)の管理画面からアップロードした画像ファイルを、過去(月を跨っている)にアップロードした画像ファイルに置き換える方法をメモしておきます。

過去の記事で表示している画像に少し修正を加えたいけれども、該当する記事がたくさんあって記事を修正するのが面倒な場合に、画像ファイル側の修正だけで済みます。

WebサーバはLinux、DBMSはMySQLを想定しています。

1. 過去の画像ファイルの情報を確認

  1. WordPress管理サイトの[メディア] -> [ライブラリ]ページで、対象となる過去の画像の[編集]リンクをクリックして編集ページにアクセスします。
  2. [パーマリンク]欄のパラメータattachment_idの値の部分をメモします。
    • 「attachment_id=xxx」となっている xxxの部分です。
    • これが wp_postsテーブルのIDカラム値になります。
  3. [ファイルのURL]欄の文字列の中に、「wp-content/uploads/年/月/画像ファイル名」というパスになっている部分があるので「年」と「月」をメモしておきます。
    • これはWebサーバ上の画像ファイルのパスです。

2. 過去の画像ファイルを削除

  • WordPress管理サイトの[メディア]ページから過去の画像ファイルを削除します。

3. 新しい画像ファイルをアップロード

  1. 過去の画像ファイルと同じ名前で新しい画像ファイルを作成します。
  2. WordPress管理サイトの [メディア] -> [新規作成]ページからこの画像ファイルをアップロードします。
  3. 1-3と同様に、新しい画像ファイルのパスの「年」と「月」をメモしておきます。

4. 新しい画像ファイルを過去の画像が配置されていたパスに移動

  1. Webサーバのターミナルにログインし、WordPressのディレクトリに移動します。
  2. 3-3でメモしておいたパス「wp-content/uploads/年/月/」の下に配置されている新しい画像ファイルを、1-3でメモしておいたパス「wp-content/uploads/年/月/」に移動させます。
    • サムネイルなど3つの画像ファイルが対象になります。

5. データベース上の関連データを修正

  1. MySQLデータベース管理ツール(phpMyAdmin等)を開きます。
    • mysqlコマンドでも構いません。
  2. wp_postsテーブル内で、IDカラムが手順1-2で確認した値になっているレコードのguidカラム値に画像ファイルへのパス(3-3でメモした値)がセットされているので、1-3でメモした値に修正して保存します。
  3. wp_postmetaテーブル内で、post_idカラム値が1-2で確認した値になっているレコード(複数あります)のうち、meta_keyカラム値が “_wp_attachment_metadata” と “ _wp_attached_file”のレコードを修正します。この2つのレコードのmeta_valueカラム値に画像ファイルへのパス(3-3でメモした値)がセットされているので、1-3でメモした値に修正して保存します。

Webサーバのターミナルにログインするなら、既存の画像ファイルを上書きしてしえばよいのですが、サムネイル画像の生成が面倒ですので、人によっては今回の方法の方が労力が少なくて済むかもしれません。また、実はWordPressの管理サイト上で簡単にできるのかもしれませんが、今回の手順で得た知識が何かの時に役立つかもしれませんのでメモしておきます。

[最終更新日: 2014年3月4日]