WordPressのテンプレートで不具合?固定ページが表示されない場合の対処法
- 固定ページが表示されないけどどのように対応したらよいか分からない
上記のような悩みは、長くWordPressサイトを運用している方にでも起こり得る問題の一つです。
原因は様々ですが、一見固定ページと関係なさそうなところが影響していたり小さな見落としが原因だったりしますが、一度エラーが起きると解決に時間がかかることも少なくありません。
この記事では、症状を元に原因と対処法を解説します。
目次
固定ページを作ったのに表示されない(他のページが表示される)場合
例えば、「会社概要」という固定ページを作成したのに、ページを確認するとトップページが表示されている、もしくは異なったページが表示されているといった現象が起きることがあります。
管理画面や表示されたページにエラーが表示されないことが多いですが、主な原因はそれほど難しいところにない場合がほとんどです。
パーマリンク(ページスラッグ)とテンプレート
この場合にまず確認するのは以下の点です。
- ページスラッグは設定したか
- 表示しているページのURLが正しいか(ページスラッグのスペルが合っているか)
- 自作テンプレートの場合には固定ページ用テンプレートのファイル名が正しいか
- 固定ページ編集画面で正しいテンプレートを選択しているか
3つ目と4つ目については、固定ページのテンプレートの設定方法によりますが、個人的にはスペルミスは意外とありがちなミスかと思います。
上記の4つを確認する前に、症状を正確に把握する意味で、どのテンプレートが現在表示されているか調べる方法があります。
「Show Current Template」というプラグインを使用する方法です。
このShow Current Templateプラグインは、現在どのテンプレートが表示されているかをサイトのツールバーに表示することができるプラグインです。
管理画面のプラグイン>新規追加からShow Current Templateで検索をして、インストール、有効化をするだけで機能が使えるので設定等は必要ありません。
現在表示されているテンプレートを把握することで、ある程度原因を絞り込むことができます。
- 正しいテンプレートが存在していない
- URL等のスペルミス
- 設定するテンプレートが間違っている
- 固定ページの本文に入力する内容が間違っている
上記のような原因が考えられます。
テンプレート階層
WordPressには、テンプレート階層という考え方があります。
テンプレートのファイル名によって、表示される優先順位が異なるという仕様です。
例えば、カテゴリー別アーカイブにarchive.phpを表示したい場合でもcategory.phpがあればcategory.phpが優先されてしまいます。
テンプレート階層は目的に応じて優先順位が決まっているので、あまりテンプレート階層が原因ということはないかもしれません。
しかし、固定ページですと、エディタの内容を反映させたいのに反映されない等といった場合にpage-{ページスラッグ}.phpの方が優先順位されるためこのテンプレートの内容が表示されてしまうという場合です。
その場合には、ファイル名を変更するなどしてテンプレート階層を回避する必要があります。
404エラーがでる場合
Webサイトにはいくつかのエラーメッセージが用意されています。
その中でも、404エラーは比較的よくみるエラーです。
パーマリンクを再設定する
目的のページURLのスペルは合っているのに404エラーがでてしまう場合、パーマリンクの再設定を行いましょう。
管理画面の設定>パーマリンク設定を開いて、何も変更せずに画面下の「変更を保存」をクリックします。
この操作だけでパーマリンクを再設定することができます。
.htaccessの確認
パーマリンクの再設定だけではエラーが消えない場合もあります。
その場合には、.htaccessファイルを確認します。
WordPressのルートフォルダ(一番上の階層)を開くと、.htaccessファイルがあります。
テキストエディタで.htaccessを開いて、中身を確認してみてください。
サーバーのルートにWordPressをインストールした場合には、上画像のようになっています。
(何も自分で追記していない場合)
もし相違がある場合には修正し、FTPソフト等を使ってサーバーにアップロードしてください。
エラーがでているけれど相違がない場合には、サーバー側の.htaccessファイルを削除してみます。
管理画面で何かの操作をした後にサーバー側を再読み込みすると、また自動で.htaccessファイルが生成されるので心配ありません。
修正・削除した後に、ページを読み込み直してエラーが改善されているか確認してみてください。
削除したことで新たなエラーが起こるということはありません。
ページが真っ白になる場合
サイトの編集をしていて一番困るのは、突然にページが真っ白になったときではないでしょうか。
エラーがでていれば、まだ原因の追究は難しくありませんが、画面が真っ白になった場合には手掛かりがないので、原因となるものを一つずつつぶしていくという作業が必要になります。
プラグインを停止させる
原因として考えられるものの一つにプラグインがあります。
プラグインが原因かどうかをまず判別するために、有効化しているプラグインをすべて停止させてみましょう。
すべてのプラグインを停止させた時にエラーが解消されれば、エラーの原因はプラグインにあるということになります。
どのプラグインが原因でエラーが起きているのかを特定する
- 特定のプラグインの影響でエラーが起きている
- プラグインの競合によってエラーが起きている
特定のプラグインの影響でエラーが起きている場合には、プラグインを一つずつ停止させて、どのプラグインが影響しているか調べます。
プラグインの競合によってエラーが起きている場合には、まず有効化しているプラグインの中に似たような機能のあるプラグインがないかを確認します。
似たような機能をもったプラグインは競合しやすいからです。
また、プラグインには相性の悪いものが存在します。
これはどのプラグインとどのプラグインが競合するか経験してみないと分からないので、知識がない場合にはインターネット等で有効化しているプラグインについて調べてみるのが最も近道です。
WordPressをダウングレードする
WordPressのバージョンアップにプラグインのバージョンが対応できていない場合が考えられます。
WordPressのバージョンアップによって画面が真っ白になった場合には、バージョンの非対応が原因として考えされます。
WordPressをダウングレードするか、プラグインのバージョンを見直すことで改善されます。
functions.phpを確認する
Functions.phpでは、WordPressやプラグインの機能を拡張したり、管理画面に新しく機能を追加することができます。
しかし、機能面に深く関わっているだけにちょっとしたミスでエラーが起こりやすいファイルでもあります。
Functions.phpを使用している場合には、functions.phpの中身を確認しましょう。
- 必要のないスペースや改行を追加している
- コードを編集した際に記号などが抜けている
- プラグインの機能と競合している
- コード自体に問題がある
必要のないスペースや改行が追加されていないか確認するには、コードを一つ一つ見直していく他ありません。
コピペ元があるなら、見比べてみましょう。
スペースや改行という小さなことがエラーに繋がるので、意図しないスペースや改行が入らないように気を付けましょう。
記号などが抜けていないか等も注意深く見直していく必要があります。
「,」「’」「”」「:」「;」といった記号がPHPファイルにはよく用いられています。
セットで使われる記号や抜けている場合や記号やスペースが全角になっている場合にもエラーが引き起こされるので要注意です。
プラグインの機能との競合を調べるには、競合しているプラグインを特定する必要があります。
コード自体に問題がある場合は、コピペ元のコードそのものにミスがある可能性があります。
別のコードで同じような機能を実現するか、プラグイン等の代替案を考えるほうがコードのミスを特定するよりも近道になる場合が多いです。
固定ページが表示されないエラーにもいくつか種類があり、その症状によって解決方法も異なります。
まず症状を正しく理解していないと、直そうと思って行った操作が別のエラーを引き起こしてしまう理由になりかねません。
触るのが怖いファイルもありますが、編集等をする前にはバックアップを取って万全の状態で編集することをお勧めします。