WordPressのカスタマイズ方法やプラグインレビューを中心に、パソコン/動物/植物のことなどを紹介するホームページです

【WordPress】で何かを変更したら固定ページや投稿が404エラーになったときの対処

公開日:2018(平成30)年12月24日/最終更新日:

WordPressのトラブルシューティング



【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

こういうのって本当に焦りますよね~~。私が今回遭遇したのは『カラフルボックス』サーバーで運用しているサイトで.htaccessファイルへ追記したときでした。

FTPで.htaccessファイルダウンロードして、追記して再びアップロードして・・普通の作業です。でも・・・これによってトップページ以外の投稿や固定ページが一切表示されない(404エラーになる)現象が発生しました。

カラフルボックスで複数のサイトに同じことをしたら同様のエラーが出たのですが、ドメインキングで行っても現象が出ないことからおそらくサーバーによってさまざまなのでしょう。

まあ私の場合は結構いろいろやった挙句に不具合発生→原因分からず→何をどうしたのかも覚えておらず→あきらめる・・みたいな苦い経験をたくさんしてきたので、1つ変更してはチェックする癖がついていますから「ああ、このアクションで不具合が出たのね!」とすぐに分かるようにしてます。そしてきちんと変更前のものも保存(いわゆるバックアップ)してますからまず何が起こっても大丈夫!!にしてますからこんなに悠長な記事書けるんですよね。

でも本当に何をしたのか?何が原因なのか?が不明な方で、今回のようにトップページ以外の投稿や固定ページが一切表示されず、404エラーとなってしまう場合は、なぜ起こったのか、どうやって直すのかという結論だけを求めずに、WordPressの仕組みを改めて理解した上で対応できるようになっていけるといいですね。

そのヒントの1つだと思ってます。それでは始めましょう!!

原因はカスタムパーマリンクかも

WordPressで作った投稿や固定ページがどうやって引っ張り出されて表示されるのか?って考えたことあります??

あんまりないですよね?

でもこれが分かると今回のような現象はこれをすれば!!とすぐに解決できます(解決に導く引き出しの一つになります)。

WordPressのとあるページにアクセスされると、投稿IDを元にいろいろな部品が集められます。この部品はデータベースという箱の中に入ってます。タイトル・本文などが入った箱、カテゴリーやタグの入った箱、テーマの設定が書かれている箱・・・などなどいろいろな箱からデータを引っ張り出してきて、テーマというものを通じて表示されるようになっています。

このIDを分かりやすい文字列にしているのが、よく出てくる「パーマリンク」の設定。投稿タイトルにしたり日付入れたりと管理画面から自由に変更できますよね?

ではいつIDをパーマリンクに変えてるの?ということなのですが、実際のプログラムが分からなくても想像はつきます。まずはアクセスされたときにパーマリンクをIDに変換して、箱からいろいろ出した後で再びパーマリンクに変換する・・・なんて動作をしていると考えられます。

そしてこの指示を出しているのが.htaccessに書かれている#…wordpressの間の記述。今回の場合で言うと.htaccessファイルに追記をしたことでこの変換処理がうまくできなくなって404エラーが出ていると推察できます。

実際のプログラムが読めなくてもここまで想像できると解決は簡単ですね。

対処方法

簡単なことです。パーマリンクとIDの書き換え(変換)がうまくいっていなくて箱からデータが取り出せなくなっているのですから、きちんと認識させてあげればいいわけです。

やることは1つ【パーマリンクのリフレッシュ】です。

管理画面から「設定」→「パーマリンク設定」を開いて何もしないで「更新」するだけです。

これできちんと書き換え(変換)しなさいよ!という指示が機能するようになり、404エラーは見事解消!となるのです。

結構この【パーマリンクのリフレッシュ】をご存知ない方が多くて、私のココナラでの出品にもたびたび問い合わせが来ますし、Teratailのような無料のフォーラムでもよく出てきます。もちろん「やってみたら?」で解決できることなので特に費用をいただくことはありませんが、理解しよう!理解してみよう!こうなってるんじゃ?と興味を持たない限りはまた同じことに躓くんでしょうね、きっと。

皆さんも何かしたことでトップページ以外の固定ページや投稿がすべて404エラーになったら・・・迷わず【パーマリンクのリフレッシュ】を一度してみましょうね。

たったこれだけのことで長い文章書いてすみません・・・。