記事データの移行は、WordPress標準の「エクスポート・インポート」機能を使うことが多いと思いますが、投稿タイプが違う場合にはXMLファイルを少しカスタマイズする必要があります。
また、アイキャッチ画像が紐づかないのが不便なため、アイキャッチデータも一緒にエクスポートして一発で手間なく移行する方法です。毎回、忘れがちなので備忘録として。
今回は、カスタム投稿タイプの記事をデフォルト投稿に変更して記事を移行します。
目次
移行元(旧サイト)の記事データをエクスポート
まずは、XMLファイルのエクスポートから。
アイキャッチを紐づけた状態でエクスポートする
メディアもWordPressの標準機能でエクスポート&インポートできますが、メディアライブラリに画像が登録されない等の失敗が多々あるためプラグインを使います。
移行元からエクスポートする際に、アイキャッチ画像を紐付けるにはプラグイン「Export media with selected content」が便利。失敗せずなかなかオススメなプラグインです。
https://ja.wordpress.org/plugins/export-media-with-selected-content/
プラグインをインストールするとエクスポート画面に「Export media with selected content」が表示されています。
エクスポートする記事データと共にチェックを入れてファイルをダウンロード。
「Export media with selected content」は移行先では使いません。移行元でデータをエクスポートする時のみ必要で、移行先では通常通りインポートします。
XMLファイルのカスタマイズ
この例では、カスタム投稿タイプ「スポーツ」をデフォルト投稿に変更します。エクスポートしたXMLファイルを開き必要箇所の編集をしていきますが、手順としては書き換えたい文字列を検索して置換する。置換する文字列が多数あるので、この繰り返し作業を行います。
カスタム投稿の書き換え
0 1 2 3 4 5 6 |
#変更前(カスタム投稿「sports」) <wp:post_type><![CDATA[sports]]></wp:post_type> ↓↓↓ #変更後(デフォルト投稿の「post」) <wp:post_type><![CDATA[post]]></wp:post_type> |
カスタム投稿「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」
ターム名「野球」 →→→ カテゴリー名「娯楽」
0 1 2 3 4 5 6 |
#変更前 <category domain="sports_cat" nicename="baseball"><![CDATA[野球]]></category> ↓↓↓ #変更後 <category domain="category" nicename="fun"><![CDATA[娯楽]]></category> |
(3)ポストタイプをチェック
「post_type=sports」という文字列で検索すると多数でてくるので「post_type=post」に置換。
その他、サイト内リンクしている場合があるので、リンク切れを起こさないようURLも検索して置換しておくと1つ1つ修正する手間が省けるのでやっておこう!カスタムポストやタクソノミー、タームなどの文字列やスラッグを片っ端から検索して一括置換していきます。その際、スラッシュ「/」やダブルクォーテーション「”」などが抜け落ちないよう要注意!
(4)見出しなどの置換もついでに
今回、新しいサイトでは見出しのデザインを変更するため、ココでclassも付与してしまいます。
0 |
<h2>で検索して、<h2 class="style">に置換 |
編集後のXMLファイルを移行先(新サイト)へインポート
すべて置換が整ったら、新しいサイトにXMLファイルをインポートします。
ユーザ(投稿者)の割当てをし、「添付ファイルをダウンロードしてインポートする」にチェックを入れて実行ボタンを押下。
インポートでは画像もダウンロードしてくるので長い時間がかかるがじっと我慢!
今回、移行先でメディアカテゴリーに入らないように「category domain=”attachment_category”」の置換を行わなかったためエラーが出るが問題ないのでスルー。その他、旧サイトにあって新サイトにないユーザもエラーになるがスルーでOK。最小限の工数で記事移行ができました!
雑感・総括
XMLから移行してくるため記事IDは引き継がれるが、カテゴリーを変えるパターンがあるので、その際にはURLのリダイレクトが必要。慣れてしまえばXMLファイルをカスタマイズしての記事移行が便利。だが毎回久しぶりな作業で忘れがちなため、この記事で次回以降は大丈夫だろう・・・たぶん。