WordPressから「はてなブログMedia」に記事を移行する際に、なるべく移行の手間を減らす

はじめに

JBS Tech Blogは、しばらくの間、クローズ環境として、自社構築のWordPress上で運用していました。

2022年3月には本番リリースとして「はてなブログMedia」に移行したのですが、その際に既存の記事の移行で悩んだことがあったので、メモとして残します。

※ 記事公開時の情報で仕様変更される可能性があります

※ 不明点ははてなにお問い合わせください

WordPressからの移行で出来ることと出来ない事

はてなブログMediaは、標準機能としてWordPressからの記事インポート機能を持っています。 ただ、今回の自社構築のWordPressから記事を移行するにあたっては、一部、出来ないことがありました。

  • 出来る事
    • 記事本文を移行する
    • 記事で利用している画像を、はてなフォトライフに移行し、ブログ内の画像リンク先を書き換える
  • 出来ない事
    • 記事投稿者の移行
    • 移行した記事の作成者の変更

ネックになったのが、すべての記事の作成者が、移行を実施する管理者のアカウントで統一されてしまう事と、後から記事の作成者を変更することが出来ない、という事でした。

移行記事については作成者を管理者のままにして、プロフィールカードで見た目上の投稿者を変えるという事も考えましたが、今回は、一人当たりの記事数はそこまで多くなかったので、各自に移行をお願いすることにしました。

記事移行の負担を軽減する

とはいえ、「WordPressに投稿した内容と同じ内容を、はてなブログ側にも書いておいて!」と言うだけというのはあんまりなので、出来るだけ移行負荷を減らせる方法を考えました。

投稿者の立場で考えた時に、記事の移行で一番面倒なのは、画像の再設定だと考えました。今回、「記事で利用している画像を、はてなフォトライフに移行し、ブログ内の画像リンク先を書き換える」事は移行ツールで出来るので、これを何とか活かしたいと考えました。

実際に行った手順

管理者アカウントで移行ツールを使った移行を行う

※ 今回、移行ツールで一度移行した後で削除する、という手順を取ります。移行ツールで移行した記事はいったん公開されてしまうので、ブログの公開設定を一般公開にする前に行う事をお勧めします。

まず、WordPressで記事のエクスポートを行います。

ここで生成されたxmlファイルをはてなブログMedia側で読み込みインポートします。

インポート後、画像も読み込みます*1

これで、作成者は管理者に統一されてしまうものの、記事の移行と画像の変換は出来ました。

なお、この際、画像ファイルは、移行を実施した管理者の「はてなフォトライフ」に、ランダムなファイル名で変換され、そこにリンクが貼られる形になります。

管理者アカウントで移行後の記事のソースを個別保管する

移行した記事は編集モードがMarkdownになっています。

移行用のタグはついているものの、基本的にはhtmlで書かれています。これをテキストファイルにコピーします。

コピー後、移行ツールで出来た元記事は削除します。

投稿者アカウントで記事のソースを貼り付ける

ここからは投稿者側の作業です。管理者が用意したテキストファイルを、記事として貼り付けます。

この際、画像の参照先としては移行を実施した管理者の「はてなフォトライフ」のままなのですが、投稿者側から参照してもこの画像へのリンクは有効になります。

そのため、投稿者は画像へのリンクを書き直すことなく、ソースを移せばほぼ移行が完了する、という状態になります。

イメージとしては図のようになります。

細かい部分を直す

あとは、今回の移行で対応できない部分を手動で行います。以下は一例です。

  • 記事タイトルの設定
  • プロフィールカードの設定
  • 目次の挿入
  • カテゴリの設定
  • 動画ファイルの移行

おわりに

今回は、作成者を生かしたかった事、自分自身の記事も多かったこと、ソースの書き出しを手動で行える程度の記事数だったことから、このような方法を取りました。長期で運用していて記事数も多いWordPressからの移行では現実的ではないかもしれませんが、今回のようにテスト環境から移す際には一つの手だと思います。参考になれば幸いです。

*1:今回、実際にはクローズ環境の画像ファイルに直接はてなブログがアクセス出来ないので、事前に画像だけAzure Storageに移行して、エクスポートしたxmlファイル内の画像ファイルのパスを変更する、といった細工をしています

執筆担当者プロフィール
舟越 匠

舟越 匠(日本ビジネスシステムズ株式会社)

人材開発部に所属。社内向けの技術研修をメインにしつつ、JBS Tech BlogやMS認定資格取得の推進役もやっています。資格としてはAzure Solutions Architect Expertを所持。好きなサービスはPower Automate / Logic Apps。好きなアーティストはZABADAK。

担当記事一覧