WordPressマルチサイトを単独サイトへ移行
この[ホームページ引っ越しサービス]のサイトは、最初、MovableTypeで制作し、2017年の1月に、WordPressで作り直しました。
その際、将来的なことや、テストも兼ねて、サブドメイン型のマルチサイト(複数サイト機能)にしたのですが、約半年間それで運営してみて、当サイトの場合は、マルチサイトにするメリットよりも、
- いくつかのプラグインが動かない
- プラグインの管理や設定が、ややこしい
- サイトの切り替えが、意外に面倒
- データベースの肥大化が懸念される
といったデメリットの方が大きいと感じましたので、先日、マルチサイトから、一般的な単独サイトに移行しました。
その主な手順は、
- サーバーに移行用のサブドメインを作り、WorsdPressインストール
- 現行のサブドメインから、子テーマ、プラグイン、画像をダウンロードし、それらを、移行用のサブドメインへアップロード
- 移行用のWordPress(入れ物)を、現行のWordPressとまったく同じように構築
- 現行のWordPressから「固定ページ」と「投稿」をエクスポートし、それを、移行用のWordPressへインポート
- 移行用のWordPressで、アイキャッチ画像登録
- 現行のサブドメイン(シンボリックリンク設定済み)をリネーム
- 移行用のサブドメインをリネームして、本番用に
- Google関係の設定
といった流れです。
一筋縄ではいかない、マルチサイトから単独サイトへの移行
ただ、実際にやってみると、マルチサイトから単独サイトへの移行は初めてでないにもかかわらず、さまざまな問題が発生し、その都度、調べて、対応して、の繰り返しで、想定していたより数倍の時間を費やしてしまいました。
そこで今回は、参考までに、その一部を紹介します。
post_idの振り直し問題、再び
WordPressの移行では、基本的には、現行のMySQLデータベースをSQLフォーマットでエクスポートし、それを新しいMySQLにインポートするのですが(その方が確実で早いのですが)、
今回のように、マルチサイトから単独サイトに移行する場合は、一応、サイトごとにテーブルが分かれているとはいえ、他のテーブルと影響しあっているるかもしれないので、安全のために、XML形式でエクスポートし、それを新しいWordPressにインポートしました。
そうしたところ、新旧のWordPressで、「post_id」(投稿等の固有ID)が異なる現象が起こりました。
コラム[インポートでpost_idが変わった?]でも触れましたが、当サイトのように、URLに「post_id」を含んでいるサイトでは、新旧で「post_id」が変わるということは、URLが変わるということですので、そのままでは問題があります。
そこで、新旧のMySQLデータベースの「posts」テーブルを細かく調べてみたところ、投稿内に「PNG」ファイルがあると、post_idが振り直されていましたので、エクスポートファイル内のPNGファイルを認識しないよう細工してインポートしたところ、現行サイトと同じ「post_id」になりました。
アイキャッチ画像が登録されない
WordPerssには、アイキャッチ画像を一括で登録できる、「Auto Post Thumbnail」というプラグインがあり、仮に「メディア」に画像が登録されていなくても、「固定ページ」や「投稿」で画像を使っていれば、アイキャッチ画像として登録されるのですが、なぜか今回は、それが数個しかできませんでした。
通常こういった場合、うまくいったデータとうまくいかなかったデータを比較すれば、原因がわかることが多いのですが、今回はそれでもわからず、
それなら「メディア」に画像登録されていれば大丈夫だろうと考え、「Add From Server」というプラグインを使って、ディレクトリごとに、アップロード済みの画像ファイルを登録しました。
ちなみに、その前に、「Media From FTP」というプラグインを使ってみたのですが、アップロード済みの画像ファイルは下層ディレクトリまでしっかり認識されているにもかかわらず、なぜか登録ができなくて、それもあって「Add From Server」プラグインの方を使いました。
すべての画像が、「メディア」に登録されてから、再度、「Auto Post Thumbnail」を実行したのですが、それでも前回同様、数個しかアイキャッチ画像が登録されませんでした(つまり「メディア」に画像登録されているかどうかは関係無かったようです)。
結局、別の方法で全てのアイキャッチも登録もできたのですが、なぜ「Auto Post Thumbnail」が、一部のデータではうまくいって、残りのデータでは機能しなかったのかは、謎のままです。
移行後の新規投稿では、「Auto Post Thumbnail」が正常に動いていますので(「Auto Post Thumbnail」の一括登録機能を動かすのが目的ではなく、アイキャッチ画像が正しく登録されることが目的なので)、これで良しとしました。
ランキングが表示されない
当サイトの下部に表示している「Monthly Ranking」は、サーバーの負荷を軽減するため、Google Analytics のデータを元にランキングを表示する、「Simple GA Ranking」というプラグインを使っています。
今回の移行では、最終的にURLは変わりませんので、設定もそのままで大丈夫と考えていたのですが、移行後は、なぜか表示されなくなってしまいました。
そこで、改めて、プラグイン側とGoogle側の設定を1つずつし直していったのですが、それでも表示されません。
そこで試しに、「本日から何日前までのランキングを表示させるか」の数字を、元々の30日から、7日に変更してみたところ、正しい順位が表示されるようになり、29日に変更しても正しく表示されました。
ただし、もう一度30日にしても、表示されません。
29日で正しい順位が表示されましたので、その日はそれで終え、翌日、試しに30日にしたところ、ちゃんと表示されるようになりました。
これも原因は不明ですが、以降は正しい順位が表示されていますので、これで問題ないと思われます。
マルチサイトから単独サイトへの移行も、お任せください
WordPressをマルチサイトで運営している方は、おそらく少ないと思われますし、それをわざわざ単独サイトの移行することも稀と思われますが、
もし、何らかの理由で移行が必要になり、自社(自分)でやってみたけど、問題が発生して先へ進めなくて困っておられる方がいらっしゃいましたら、ぜひ、ご相談ください。
問題解決のお役に立てると思います。