PHP Strict Standards: Declaration of エラー
ワードプレスを引っ越しされて、PHP Strict Standards: Declaration of 〜エラーがすべてのページに表示されたというご相談をいただきました。ここではこのエラーについて掘り下げて考えたいと思います。
Strict Standards:エラーとは?
このエラーは、簡単にいうと「厳密にこのバージョンのPHPの書き方に合致しないコードがありますよ」という意味です。つまり、コードが古いから今後PHPではこのコードが使われなくなるということを先んじて教えてくれていると考えてください。
警告文の深刻度
深刻度低 Notice *変数が代入されていない等の通知
深刻度低 Strict Standards *今後Warningになる可能性がある古いコード
深刻度中 Warning *実行エラーになるかもしれない警告
深刻度高 Fetal *実行エラー
現在では、特にサイトの動作に支障は出ませんが突然ワードプレスのすべてのページに出力されると驚いてしまいますよね。
なぜこのエラーがでるのか?
このエラーが出る原因は、簡単にいうとサーバーのPHPのバージョンが変わりワードプレスのPHPのバージョンとずれるからです。この理由は様々ですが、ワードプレスを別のサーバーに移動した際にそのサーバーで利用されているPHPのバージョンが新しかったり、サーバーの管理会社がPHPのバージョンアップを実施したりするとこのような状況となります。
解決編
このエラーは、非常に新しいPHPをサーバー側で使用しているからおこるもので、ワードプレスの動作には全く支障がありません。このまま数年放置するとエラーになる可能性がありますが当面は大丈夫です。
ゆえに、エラーを表示しないように設定を変えるだけで問題は解決いたします。エラーを表示しないようにする方法はいくつかあります。
wp-config.php,php.iniを編集する方法
php.iniに下記の一文を追加してください
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
もしくはwp-config.phpに下記を記載してください
error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);
htaccessを編集する方法
htaccessファイルに下記の一文を追加してください
<IfModule mod_php5.c>
php_value error_reporting 30711
</IfModule>