ワードプレスに色々なプラグインを入れて利用している中で、サーバの PHP バージョンによって、「 Warning: A non-numeric value encountered in 」というエラー(警告)が出てしまうことがあります。今回はその対策方法について図解説します。
警告対策 Warning:
A non-numeric value encountered in
1.エラー(警告)について
Web サイトを表示させたときに、下記のように警告(Warning)が表示されます。
数値ではない値がきたとのエラーです。そしてその場所が表示されています。上記の場合だと /wp-inclueds/media.php の648行目だとなっています。
サーバ上の media.php をダウンロードし、648行目を表示すると下記のようになっています。
$matched = ( abs( $constrained_size[0] – $expected_size[0] ) <= 1 && abs( $constrained_size[1] – $expected_size[1] ) <= 1 );
実は PHP のバージョンによって、新しいバージョンでは値のチェックが厳しくなり警告を表示するようになりました。
2.警告の対策方法
1)サーバーから警告対象のファイルをダウンロードする
サーバ上の警告対象となっているファイルをダウンロードします。今回は media.php をダウンロードします。
ダウンロード方法は、お使いのサーバによって違います。契約されているサーバ管理画面(ワードプレスではなくサーバの管理画面)のファイルマネージャー等で行ってください。
2)ファイルの内容を書き換える「 (int) 」を追加する
ダウンロードしたファイルを開き編集します。編集はメモ帳でも良いですが、見難いのでなんらかのテキストエディタ(ワードパッド等)を使うと良いでしょう。
648行目を書き換えます。下記のように2か所に「(int)」を挿入します。
$matched = ( abs( $constrained_size[0] - $expected_size[0] ) <= 1 && abs( $constrained_size[1] - $expected_size[1] ) <= 1 );
↓
$matched = ( abs( $constrained_size[0] - (int)$expected_size[0] ) <= 1 && abs( $constrained_size[1] - (int)$expected_size[1] ) <= 1 );
(int) は入力されたデータを数値データに変更します。書き換えたらファイルを同じ形式のまま保存します。
3)サーバに書き換えたファイルをアップロードする
再びサーバの管理画面からファイルマネージャなどを利用して書き換えたファイルをアップロードしてください。
以上の操作で次からは警告が出なくなります。
PHP ファイルを書き換える操作になりますが、注意して行えば簡単ですので、自己責任で実施してみてください。