WordPressでwp-blog-header.php
をインクルードしたページが、ブラウザの検証結果で404エラーが返ってくる問題があったので調べてみました。
wp-blog-header.phpをインクルードしているページがエラーになる
Google Chromeのブラウザであれば、該当ページでマウスの右クリックから「検証」を選択し、
「Network」をクリックします。

ページを更新してStatusが「404」と赤字で表示されていれば、ページの表示には成功しているが、ステータスコードは404のためエラー扱いとなります。

解決法
主に2つあると思います。エラーになっているページを固定ページとして作成
該当ページをWordPressの管理画面から固定ページとして作成すれば、404エラーではなく200のステータスで返ってくるようになります。wp-blog-header.phpではなくwp-load.phpをインクルードする
該当ページのphpファイルの先頭で、
1 |
require_once('../wp-blog-header.php'); |
ではなくwp-load.php
をインクルードすれば解決します。
1 |
require_once('../wp-load.php'); |
wp-blog-header.phpは、wp-load.phpの他にtemplate-loader.php
の読み込みを行なっています。
これは、現在表示されているページが投稿ページであればsingle.phpを、固定ページであればpage.phpを読み込ませる処理をしているため、投稿ページでも固定ページでもどちらでもないページの場合だったらエラーを返しているということなんだと思います。
参考ページ
https://unskilled.site/wordpress%E9%96%A2%E6%95%B0%E3%82%92%E5%A4%96%E3%81%8B%E3%82%89%E4%BD%BF%E3%81%86%E3%81%AB%E3%81%AFwp_load-php%E3%82%92%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%82%80/
コメント