WEBデザイナー

【WordPress】XMLファイルで記事データ移行する際にアイキャッチ画像にも対応し投稿タイプを変更してインポート

記事データの移行は、WordPress標準の「エクスポート・インポート」機能を使うことが多いと思いますが、投稿タイプが違う場合にはXMLファイルを少しカスタマイズする必要があります。
また、アイキャッチ画像が紐づかないのが不便なため、アイキャッチデータも一緒にエクスポートして一発で手間なく移行する方法です。毎回、忘れがちなので備忘録として。
今回は、カスタム投稿タイプの記事をデフォルト投稿に変更して記事を移行します。

移行元(旧サイト)の記事データをエクスポート

まずは、XMLファイルのエクスポートから。

アイキャッチを紐づけた状態でエクスポートする

メディアもWordPressの標準機能でエクスポート&インポートできますが、メディアライブラリに画像が登録されない等の失敗が多々あるためプラグインを使います。
移行元からエクスポートする際に、アイキャッチ画像を紐付けるにはプラグイン「Export media with selected content」が便利。失敗せずなかなかオススメなプラグインです。
https://ja.wordpress.org/plugins/export-media-with-selected-content/
プラグインをインストールするとエクスポート画面に「Export media with selected content」が表示されています。
エクスポートする記事データと共にチェックを入れてファイルをダウンロード。
まずは、XMLファイルのエクスポートから。
「Export media with selected content」は移行先では使いません。移行元でデータをエクスポートする時のみ必要で、移行先では通常通りインポートします。

XMLファイルのカスタマイズ

この例では、カスタム投稿タイプ「スポーツ」をデフォルト投稿に変更します。エクスポートしたXMLファイルを開き必要箇所の編集をしていきますが、手順としては書き換えたい文字列を検索して置換する。置換する文字列が多数あるので、この繰り返し作業を行います。

カスタム投稿の書き換え

カスタム投稿「sports」をデフォルト投稿「post」へ書き換える。

カテゴリーやタグなど諸々文字列を書き換える

(1)カテゴリー category domain属性

カテゴリーを変更する時の検索キーワードはcategory domain属性。「category domain=”タクソノミー”」
今回は「category domain=”sports_cat”」という文字列を検索し、「category domain=”category”」に置換していく。
タグの場合には「category domain=”post_tag”」に置換。

XMLファイルでは、新しいサイトで予め設定したカテゴリーに書き換えておくと楽ちん!

(2)カテゴリー nicename属性

実際のターム名をカテゴリー名に変更していきます。
タームスラッグ「baseball」 →→→ カテゴリースラッグ「fun」
ターム名「野球」 →→→ カテゴリー名「娯楽」

(3)ポストタイプをチェック

「post_type=sports」という文字列で検索すると多数でてくるので「post_type=post」に置換。
その他、サイト内リンクしている場合があるので、リンク切れを起こさないようURLも検索して置換しておくと1つ1つ修正する手間が省けるのでやっておこう!カスタムポストやタクソノミー、タームなどの文字列やスラッグを片っ端から検索して一括置換していきます。その際、スラッシュ「/」やダブルクォーテーション「”」などが抜け落ちないよう要注意!

(4)見出しなどの置換もついでに

今回、新しいサイトでは見出しのデザインを変更するため、ココでclassも付与してしまいます。

編集後のXMLファイルを移行先(新サイト)へインポート

すべて置換が整ったら、新しいサイトにXMLファイルをインポートします。
ユーザ(投稿者)の割当てをし、「添付ファイルをダウンロードしてインポートする」にチェックを入れて実行ボタンを押下。
【WordPress】XMLファイルで記事データ移行する際にアイキャッチ画像にも対応し投稿タイプを変更してインポート
インポートでは画像もダウンロードしてくるので長い時間がかかるがじっと我慢!
今回、移行先でメディアカテゴリーに入らないように「category domain=”attachment_category”」の置換を行わなかったためエラーが出るが問題ないのでスルー。その他、旧サイトにあって新サイトにないユーザもエラーになるがスルーでOK。最小限の工数で記事移行ができました!

雑感・総括

XMLから移行してくるため記事IDは引き継がれるが、カテゴリーを変えるパターンがあるので、その際にはURLのリダイレクトが必要。慣れてしまえばXMLファイルをカスタマイズしての記事移行が便利。だが毎回久しぶりな作業で忘れがちなため、この記事で次回以降は大丈夫だろう・・・たぶん。

アップリーチ記事編集部

この記事を書いた人

アップリーチ記事編集部

1998年創業のシステム開発会社。汎用系システム開発とWEB制作を多く手掛ける。現在はアプリケーションの開発とサービス運用に注力。アップリーチ記事編集部では、システム・WEB・デザインなど様々な領域で発想を飛ばし、アイディアを紡いできたメンバーがノウハウやハウツーを発信しています。

関連記事

TOP