気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. WordPress
  2. 6 view

「Notice: Constant HEADER_IMAGE_WIDTH already defined」と表示されるとき

「Notice: Constant HEADER_IMAGE_WIDTH already defined」は、PHPスクリプトで同じ定数を2回定義したときに表示されるメッセージです。この例では「HEADER_IMAGE_WIDTH」という定数が二重に定義されているということです。

ゼロからPHPスクリプトを作成している場合は、あまり発生しないかもしれません。このエラーメッセージに出会う典型的な例はWordPressでテンプレートをカスタマイズしているときです。

WordPressのテーマのカスタマイズ手法として「子テーマに書いたコードが親テーマの設定を上書きする」があります。

CSSのカスタマイズについてはこの考えで問題ありませんが、PHPスクリプトでも同じアプローチだと問題が発生する場合があります。

たとえば、ヘッダー画像の定義を子テーマで上書きしようとします。

親テーマのfunctions.phpには次のように定義されているとします。幅950px、高さ250pxのヘッダー画像が使用可能だということです。

define('HEADER_IMAGE_WIDTH', 950);
define('HEADER_IMAGE_HEIGHT', 250);

この設定は「外観」-「ヘッダー」メニューに表示されるサイズと連動しています。

WordPressのヘッダー画像のサイズ定義

WordPressのヘッダー画像のサイズ定義

この設定を子テーマで上書きしようと、functions.phpに同じコードを入力してサイズだけを変えます。

define('HEADER_IMAGE_WIDTH', 888);
define('HEADER_IMAGE_HEIGHT',222);

変更後、「外観」-「ヘッダー」メニューを見るとサイズが変わっているのでうまくいっているように見えます。

うまくいっているように見えるが…

うまくいっているように見えるが…

実際は「定数の二重定義」に引っ掛かっているはずです。二重定義の問題が起きているものの、動作には影響しないレベルのエラーなのでメッセージが表示されないだけです。

試しに設定ファイル(wp-config.php)の「WP_DEBUG」を「true」にして、すべてのデバッグメッセージ(エラーメッセージ)を表示してみましょう。

その設定が見つからない場合は次の1行を追加してください。
define('WP_DEBUG', true);

おそらく次のようなエラーメッセージが表示されるはずです。

「Notice: Constant HEADER_IMAGE_WIDTH already defined 」が表示される

「Notice: Constant HEADER_IMAGE_WIDTH already defined 」が表示される

偶然、他の用事で「WP_DEBUG」を「true」にしてみて、いろいろなエラーメッセージが表示されてビックリすることがあるかもしれませんが、このような事情です。

元々、稼働中のWordPressに潜んでいたエラーメッセージが、これまでは非表示になっていたということです。それがわかっていれば焦ることはありません。動作に影響しないレベルのエラーであれば無視しても大丈夫ということです。

ヘッダー画像のサイズ定義に関する定数を上書きするのは良いのか悪いのか難しいところですが、とりあえずの対処としては無視しておいても大問題になることはありません。

WordPressの最近記事

  1. WordPressでいつの間にか作成される「php.suspected」ファイルとは

  2. 検索順位のチェックに役立つツール「GRC」

  3. WordPressのテーマを作成したいならPHPは必修!

  4. 「Notice: Constant HEADER_IMAGE_WIDTH already …

  5. 「Fatal error: Cannot redeclare」と表示されるとき

関連記事

PAGE TOP