PHPを独学するなら、Udemyの動画講座で
PHP 7も使えて快適な エックスサーバー

「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に潜んでいたエラーメッセージが、これまでは非表示になっていたということです。それがわかっていれば焦ることはありません。動作に影響しないレベルのエラーであれば無視しても大丈夫ということです。

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

スポンサーリンク

こちらもどうぞ

こちらも参考にしてください

関連記事

MySQL

phpMyAdmin

PHPサンプルコード

PHP全般

PHP関数

エラーメッセージ

PHPの基礎が身に付いたかチェック!

PHP「直す力」養成ドリル
スポンサーリンク