WordPressの「Call to undefined function get_header()」エラーの原因と対策

★★★ Live配信告知 ★★★

Azureでクラウドネイティブな開発をするための方法について、世界一わかりみ深く説明致します!!複数回シリーズでお届けしている第7回目は、「どんと来いDocker」をテーマに、なかなかにわかりにくいDockerの概念を優しく紐解きます!!
【2021/10/28(木) 12:00〜13:00】

この記事ではWordPressで発生する「Call to undefined function get_header()」というエラーの原因と解決方法をまとめています。

概要

WordPressサイトのエラーログで以下のようなエラーが発生しました。

メッセージは表示されますが、サイトは問題なく動作しています。

エラーメッセージから、テーマに問題があると思われます。しかし特に編集した記憶もなく、テーマを再度アップロードしても直りません。

この問題を調査し、原因を特定しました。

原因

エラーメッセージを読むと「Call to undefined function get_header()」とあります。つまりget_header()という関数が定義されていないのがエラーの原因です。

エラーが発生しているindex.phpを確認すると、エラーの行に以下のような記述があります。

このファイルを見ても、get_header()の定義は存在しません。なので「Call to undefined function get_header()」というエラーが出るのも当然です。

今回のエラーの原因となっているWordPressテーマのindex.phpはWordPress本体から呼び出されることを前提としたファイルなのです。そのためget_header()の定義はこのファイルにはなく、WordPress本体側で定義されています。

対策

テーマファイルの直接アクセスは想定されていない動作のようです。対策としては、テーマファイルを編集するか、アクセス制限を掛けるなどの方法が考えられます。テーマファイルの編集は、アップデート時に修正が必要になりメンテナンス性が良くありません。なので、今回は.htaccessによるアクセス制限を紹介します。

以下の.htaccessを/wp-content/themesに配置します。以下は「example.com」からのアクセスのみ許可する例です。





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

Be the first to comment

Leave a Reply

Your email address will not be published.


*