別のCMSなどからWordPressにしたときページNotFoundの対処法

WordPressでないCMSや一般的な静的HTMLで作ってあったWebサイトをWordPressに作り替えたときにはトップページ以外のページのurlが違うために、せっかくGoogle検索などで検索結果が出てもNotFoundになってしまい、イメージが…という場合があります。
そんなときの対処方法を書きます。

なぜPageNotFound(見つからないページ)になってしまうのか?

Webサイトのトップページのurlは大丈夫なのに、なぜ、トップページ以外のページが見つからない(NotFound)ページになってしまうことがあるのか?について書きます。

トップページのurlは http://example.com のようにしているので、WordPressでないCMSや一般的な静的HTMLで作ってあったページをWordPressにリニューアルしても、urlが変わらないため正しく表示されます。

しかし、その他のページはたとえば会社案内のページが

http://example.com/company.html

だったりした場合は、WordPressでは表示させることができません。mod_rewriteを使えばなんとかなるかもしれませんが、ちょっとすぐにとうか簡単にはできないようです。

Codexでは

投稿の末尾に .html を付けるには

に、説明があったようなのですが本日(2016/04/03)現在、その項目が取り消し線で消されていて、あまり簡単にはできそうにありません。

WordPressで作ったWebサイトで、存在しないurlを見に行った場合

テーマ:Simplicity2

テーマ:TwentySixteen

こんな感じになってしまいます。このままだとちょっと残念なので、せめて見つからないページのurlで見に来られた場合は、Webサイトのトップページを表示したいなと思います。

テーマ Simplicity2 で対応する方法

Simplicity2で見つからないページのときにトップページを表示するには、と検索したところ、

404ページのカスタマイズについて

に参考になる記事が見つかりました。この内容はSimplicity1のときのものみたいでしたが、参考になりました。

使っている子テーマに、Simplicity2フォルダから header.php をコピーします。

このファイルの頭はこのようになっていますが、これを

このように is_404() ページが見つからないときに、トップページにリダイレクトするコードを追加しました。

これで先ほどの存在しないurlをブラウザで指定すると、

このようにトップページに移動しました。

テーマ TwentySixteen で対応する方法

TwentySixteen の場合は…と、Simplicity2とは方法が違うんだろうなぁと思いつつ同じようにTwentySixteenの子テーマにTwentySixteenフォルダからheader.phpをコピーして、コードの先頭の

このあたりに、先ほど追加したコードを入れて、

このようにして、存在しないurlをブラウザで見てみると

このようにトップページが表示されました。Simplicity2での修正方法と同じで良かったんですね!

[Amazon sponsored link] WordPress 関連本
兎本美佳
ブログを見た人がそのままできたらいいなと思って、できるだけ丁寧に書いています。blogに書いたようなネタの有償対応のご相談は「ゆうそうと」へいただければと思います(^^)/ 無償での対応をご希望の場合は、コメントをいただけましたら可能な場合はコメントを返させていただきます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
スポンサー広告
トップへ戻る