WordPress

データを移行したらメディアライブラリの画像が空っぽだった件

テスト環境(ローカル)から本番環境へのデータ移行をWordPress Importer(インポートツール)でやったら少しハマったのでメモします。基本的にはphpMyAdminでデータベースごと引っ越しとかするんですが、とあるサイトでなんやかんや有って今回インポートツール使ったらメディアライブラリだけがインポートされませんでした。似たような事例が多いようなのでググッて解決した内容をメモします。

移行手順

  1. ローカルにあるメディアのファイルを本サーバ(~/wp-content/uploads/)へFTPにてアップ。
  2. WordPress Importerでデータをエクスポート › インポート。データベースは操作しない。

問題

  1. メディアライブラリが空(ディレクトリ内のファイルとデータが紐付いていない)。
  2. 投稿のアイキャッチ画像がない。

解決

  1. プラグイン「WordPress Flash Uploader」でアップロード済みファイルをメディアライブラリに登録。
  2. WordPress Importerではアイキャッチ画像が反映されないようなのでCSVでの移行に切り替える。

WordPress Importerではメディアライブラリとアイキャッチ画像のインポートに失敗する

「WordPress Importer(インポートツール)」は、WordPressのメニュー「ツール › インポート」からインストールされる標準のプラグインです。「WordPress Importer」でメディアのインポートを行うとライブラリが空だったり記事との紐付けができていなかったりといったことが起きるようです。

このプラグインでのメディアのインポートについてググってみると

・「添付ファイルのインポート」にはチェックを入れない
・すべて完了しました。が出ればOK

的な情報を拾うことができました。が、実際いくらやっても「メディアのインポートに失敗しました〜」が羅列されメディアライブラリは空のままでした。

一度「WordPress Importer」を諦めて、どこかで紹介されていた画像ファイルを一括登録できる「Add From Server」という別のプラグインもインストールしてみました。アップロード済ファイルをライブラリに登録できるという今回の状況にピッタリな機能だったので試してみましたが、ファイルは認識されているものの全くライブラリに取り込めませんでした。

Add From Server — WordPress Plugins

あと、メディアのインポートと同時に解決すると思っていたアイキャッチ画像についても「WordPress Importer」だと反映されないようです。んなアホな…と思いながらこちらはCSV書き出しに切り替えました。

プラグイン「WordPress Flash Uploader」でアップロード済みファイルをメディアライブラリに登録。

ライブラリがインポート出来ない件は他のプラグインの干渉も疑いましたが原因究明はメンドクサイ!ので、さらにググッて見つけたプラグインで対処することにしました。

WordPress引っ越しインポートで役立つプラグイン4個

こちらの記事で2個目に紹介されているプラグイン「WordPress Flash Uploader」を使いました。これもメディアのディレクトリにある未登録のファイルをライブラリに追加してくれる今回にピッタリなプラグインです。

WordPress Flash Uploader — WordPress Plugins

プラグインをインストールして有効化すると、メニューに「メディア › Synchronize Media Library」が追加されます。ここでは、ライブラリにないアップロード済みファイルを探して登録してくれます。「Import Files to〜」のボタンを押して実行します。

解決
無事ライブラリに登録できました。

ちなみにこのプラグイン、もう一つメニューに追加されている「メディア › WP Flash Uploader」の機能がメインのようで、Flashによるファイルマネージャでuploadsディレクトリ内のファイル管理ができるようです。今回は使用しませんが、同期後もメディアの手動管理をする際には便利かもしれません。

WordPress Importerではアイキャッチ画像が反映されないようなのでCSVでの移行に切り替える。

そもそもメディアのインポートとともに解決すると思っていた各記事のアイキャッチ画像は、WordPress Importerでは引き継がれないとのことでした。

WordPress記事移転時にアイキャッチを引き継ぐ方法

こちらの記事にあるように、ということで、CSVでのエクスポート&インポートに切り替えました。

記事をCSVでエクスポートするプラグイン
WP CSV Exporter — WordPress Plugins

記事をCSVインポートするプラグイン
Really Simple CSV Importer — WordPress Plugins

解決
CSVでは無事にアイキャッチ画像のデータも引き継ぎができました。

ただし、ひとつだけ問題が発生。記事の並び替えをするプラグイン「Intuitive Custom Post Order」を使っていましたが、インポート先では並び替えが反映されませんでした。エクスポートされたCSVは並び替えが反映されていたので読み込むプラグインでおかしくなったようです。とりあえず原因究明はメンドクサイ!のと記事の量がまだマシだったので諦めて並び替えし直しました。

記事の並び替えが出来るプラグイン
Intuitive Custom Post Order — WordPress Plugins

結論

データベースをエクスポート&インポートした方が早い。

文字化けとかドメインの切り替えとかありますがそれでもデータベースを移行したほうが楽だなぁと思います。勉強になりました。参考にさせていただいたブログ様、ありがとうございました。