All in one WP Migrationプラグインでサイトデータをエクスポートし、別の新規WordPressにも同じプラグインをインストールしてデータをインポートすることにより、ウェブサイトを簡単に移行する・コピーを作ることが出来ます。
今回、とあるレンタルサーバー上に設置したWordPressにインポートした際、ウェブサイトに問題が発生しましたので、対処方法について書いておきます。
トップページ以外が404エラー
現象
トップページは問題なく見られるものの、そこから遷移する他のページが404エラーで表示出来ない問題です。
インストールの階層を変えたりしてパスの階層が間違っていると同様の問題が発生しますが、今回はそのようなことはありませんでした。
管理画面で確認すると、固定ページの「表示」のリンクが、サイトURLにスラッグを連結したものになっているはずが、何故かサイトURLに”?page_id=XX”(XXは数値)に連結したものになっていました。
解決方法
パーマリンクの設定を確認すると、何故かコピー元サイトの設定と異なっていました。
そこで、同じパーマリンク設定に変更した上で保存を実行すると、問題なくページを表示出来るようになりました。
ちなみに、この時に利用していたレンタルサーバーはCPIで、パーマリンク保存した際に、公開側が全て403エラーになる現象も起きましたが、これについては.htaccessが更新された際にmod_rewriteが追記されたものの、CPIでそれを利用するために必要な”Options +SymLinksIfOwnerMatch”が記述されていない状態だったからです。
専用の固定ページ用のテンプレートが読み込まれない
現象
固定ページテンプレートは通常page.phpですが、XXX-page.php(XXXはスラッグ)を作成すると、指定のスラッグの固定ページではpage.phpよりも優先して読み込まれます。
しかし、何故かXXX-page.phpが存在されているのに、page.phpが読み込まれる問題が発生しました。
解決方法
これについては理由が良く分かっていませんが、固定ページの編集画面で何も変更せずに更新することで、XXX-page.phpが読み込まれるようになりました。
なお、編集画面で意図的に使用するテンプレートを指定しても良いと思いますが、通常はそれをしなくても良いはずなので、なおさら原因が良く分かりません。(データベースの中を詳細に調査すれば何か分かるかもしれませんが…)