WordPressからの移行 EmDash WXR

WordPressの書き出しファイル(WXR)をEmDashに取り込むと、記事・固定ページ・画像・カテゴリ・タグは移ります。移らないのは、サイト名などの設定、ショートコードの機能、コードブロックの書式、どの記事にも使われていないカテゴリ・タグ(書き出し方による)の4点です。本文中の内部リンクも、WordPressのパスのまま残ります。

EmDash 1.3.1で、記事30本(公開20本・下書き10本)・固定ページ4本・画像66枚のサイトを取り込んで確かめました。

移るものと移らないもの

項目 結果
記事・固定ページ 移る。公開と下書きの状態もそのまま
アイキャッチ画像 移る(30本すべて)
画像 移る。本文中の画像URLもEmDash側に置き換わる
見出し・箇条書き・リンク 移る。数は元のHTMLと一致した
コードブロック(pre/code) 普通の段落になり、文字にコードの書式が付くだけになる
ショートコード 文字列のまま本文に残る
カテゴリ・タグ 記事に使われているものは移る。使われていないものは書き出し方による
内部リンク ドメインを除いたWordPressのパス(/スラッグ/)で残る
サイト名などの設定 移らない

公式ドキュメントによると、レビュー待ち・非公開・予約投稿の記事は、どれも下書きとして取り込まれます。試したサイトには公開と下書きの記事しかなかったので、この点は確かめていません。

崩れるのはコードブロックだけだった

EmDashは本文をHTMLではなく、Portable TextというJSON形式で保存します。取り込むときに、HTMLを見出し・段落・リストといった部品に分けて保存し直します。

確かめたかぎりでは、見出し・箇条書き・リンクの数は元のHTMLと一致しました。段落は元より1つ多くなり、増えた1つは、コードを載せた枠(pre要素)が普通の段落に変わったものでした。枠の中の文字にはコードの書式が付きますが、枠としては表示されません。コードを多く載せているサイトは、取り込んだ後に該当する記事を開いて確認します。

ショートコードは手で置き換える

お問い合わせフォームのショートコードは、

エラー: コンタクトフォームが見つかりません。

という文字列のまま本文に残りました。EmDashはWordPressのプラグインを動かさないので、ショートコードを使っていたページは、削除するか、EmDash側の仕組みで作り直します。

サイト名は取り込み後に入れ直す

WXRでは、サイト名やキャッチフレーズは取り込まれません。テンプレートの初期値(「My Blog」)のまま表示されるので、管理画面の設定で入れ直します。公式ドキュメントによると、WordPressにEmDash Exporterプラグインを入れて取り込む方法なら、サイト名とキャッチフレーズも取り込めます。

使われていないカテゴリ・タグは書き出し方で決まる

カテゴリは9件中7件、タグは118件中112件が移りました。移らなかったのは、どの記事にも使われていないカテゴリ・タグです。

原因は、投稿タイプを絞ってWXRを書き出したため、カテゴリ・タグの一覧がファイルに入っていなかったことです。EmDashは各記事に付いたカテゴリ・タグから作り直したので、記事に使われているものはすべて移っています。使われていないものまで移したい場合は、WordPressの「ツール → エクスポート」で「すべてのコンテンツ」を選んで書き出します。