WordPress記事を一括でContentfulに移行する

1 min read読了の目安(約1500字

ツール

https://github.com/xdmorgan/wordpress-to-contentful

インストール

前提としてContentful CLIが必要。ログインしておく。

ContentfulでCMA Keyを取得

Delivery tokenとは別で取る必要がある。

ここ。

envを設定

touch .env

あとはレポジトリのREADMEを参照して編集。

制限回避のため間隔を設定

const PROCESSES = 8;
// ...
const API_DELAY_DUR = 1000;
const UPLOAD_TIMEOUT = 60000;

src/contentful/upload-assets.jsにこんな箇所がある。もし実行してRate limit errorになったらここを編集しよう。

Contentfulで受け皿を作成

blogPostpersonを作成。

blogPost


authorが、personのreferenceになっている。

person


必須ではないが、WPと同じid/nameのauthorを作っておくと勝手に紐づけられる。

REST-APIが使えるか確認

/wp-json/wp/v2/usersでユーザーが取得できるか確認して、401が返ってきたらセキリュティ系のプラグインなどを見直す。

実行

yarn install
yarn start

WordPress側で何かミスって全ページにエラー吐き出された場合、JSONにエラーのHTMLが混じって妨害されるので注意。


(うちのサイトは「はてなブログに引っ越し⇨画像アップ⇨エクスポート⇨空のWPにインポート」してるので、ソースをいじって画像入れ替えとアップロードはスキップした)


はてなブログのおかげですんなりできた。画像が大量にある人は苦労しそう。。。