WordPressの移行で、メディアやアイキャッチ画像が表示されない場合の対処と使用プラグイン

WordPressを移行する場合、ドメインは同じで別サーバに移行するのか、別ドメインに記事を移行するのかなど、状況によって手順は少しずつ異なります。

私自身は、運営しているサイトを、もう少しスペックの良いサーバに移設したり、サイト売買で購入したサイトを自分のサーバに載せ替えたりなど、「サイトを、同じドメインで、別なサーバに移行する」という作業を行うことが多いです。

単純に言えば、旧サイトからエクスポートしたxmlを新サイトにインポートすればOKなのですが、これが、すんなりいった試しがない。。。毎回ハマるのが、「メディア・ライブラリ」が空っぽになってしまうのと、投稿や固定ページにアイキャッチ画像が設定されないということです。

そんなにしょっちゅうやるわけではないのですが、その度に少なくない時間を調査に掛けているので、ここに手順をまとめておきます。

記事やカテゴリのデータを移行するには、Wordpress標準のエクスポート/インポートが良い

いくつかのサイトを調べると、「WP CSV Exporter」を使ってcsv形式でエクスポートし、「Really Simple CSV Importer」を使ってインポートすると良い ということも書いてあります。

たぶん、状況によっては、それですんなりうまくいくこともあると思いますが、私の場合は、カテゴリに日本語が含まれていたりすると、その日本語が反映されず、英語のカテゴリ(スラッグ)になってしまったりしました。

私の経験上は、記事、固定ページ、カテゴリ、タグなど、画像以外のコンテンツは、Wordpress標準のエクスポート/インポートを使った方が、きれいに移行できました。

で、メディアやアイキャッチ画像などは、Wordpress標準のエクスポートと、画像専用のインポート・プラグインを使うと、きれいに移行できました。

使うプラグインは、「Attachment Importer」です。表にまとめると、

コンテンツの種類使用プラグイン(エクスポート)使用プラグイン(インポート)
投稿・固定ページ・カテゴリ・タグ・コメント・メニューWordPress標準のエクスポートWordPress標準のWordPress Importer
メディア(アイキャッチ画像)WordPress標準のエクスポートAttachment Importer

ということになります。

では、早速、その手順を。

はじめに「全体」と「メディアのみ」、2つの形式でエクスポートする

はじめに、旧サーバからWordpres標準のエクスポートでデータを抽出するのですが、この時に、2回エクスポートします。

1回目は「すべてのコンテンツ」、2回目は「メディア」のみを選択します。エクスポートしたファイルは、xmlという拡張子のテキストファイルになっています。

※1回目にもメディアの情報が含まれますが、通常インポートではエラーになって取り込まれません。

初回インポート時は「すべてのコンテンツ」のxmlファイルを使う

いよいよ、新サーバにインポートしますが、一回目は「すべてのコンテンツ」のxmlファイルを使います。

ダッシュボードから、「ツール」⇒「インポート」⇒「Wordpress インポーターの実行」を選択し、インポートを行います。

WordPress標準のインポーターですが、デフォルトではインストールされていないことが多いので、プラグインに無い場合は「WordPress Importer」をインストールしておきます。

インポート時の画面は以下のような感じになります。添付ファイル(画像ファイル)は後で別途持ってくるので、ここではチェック入れません。

で、ここでインポートを行うと、投稿などのコンテンツは正常に取り込まれ、画像ファイルがエラーになると思います。

ここではこのエラーは気にしないでも大丈夫です。(申し訳ないですが、私のやり方です。)

メディアファイルをインポートするプラグイン「Attachment Importer」で画像を取り込む

次に、「Attachment Importer」というプラグインを使って画像ファイルを取り込みます。

まだプラグインをインストールしていない場合は、ここでインストールします。できたら、「ツール」⇒「インポート」に「Attachment Importer」が表示されているはずですので、これをクリックしてインポート画面に行きます。

すると、以下のような画面になります。

メディアをアップロードするユーザを選ぶだけで、ほかは特にチェックは必要ないと思います。

注意点としては、アップロードを行う「wp-contents/uploads」フォルダに、ちゃんと書き込み権限があることを確認しておくことです。

また、同じドメインか、別ドメインかで、少し、作業内容が異なると思います。

異なるドメインの場合は、特に設定しなくてもドメイン同士をまたげるので、そのままインポートできると思います。プラグインが、画像ファイルのダウンロードとアップロードをやってくれます。

しかし、同一ドメインの場合は、同時に2つのIPアドレスのサーバを参照できないですよね。エクスポートした後、まだDNS設定が効いていない新サーバには、hostsファイル等で向き先変えるなどの工夫が必要です。

また、インポート時に、旧サーバから画像をダウンロードできない(すでにhostsを書き換えている)ので、画像ファイルはFTP等で旧サーバから新サーバに移し替えておく必要があります。

※FTPで移行するなら、インポートの必要はないのではないかと思われるかもしれませんが、プラグインにより、メディアを再インポートすることで、メディアの投稿IDが再度振られるので、きれいに移行ができることになるので、インポートは必要です。

いかがでしたでしょうか。

少し、エラーが気持ち悪いところはありますが、私は、最近はこの方法で、きれいにWordpressを移行できていますので、つまづいてしまった方は、参考にしてみてください。