WordPressでphp7.2の状態で「Warning: count()」が発生していたので原因と対処方法をまとめました。
多くのレンタルサーバーで最近はphp7.2に対応させているので発生している人も多いかもしれません。人によってはphpの設定でWarningが表示されない場合には気がついていない場合もあると思いますが。
Contents
Warning: count()が出ている状態
php7.2環境でのWordpressで発生する
phpのバージョンが7.2で発生するので、バージョン切り替えを行った場合に起こります。
表示されているメッセージ
Warning: count(): Parameter must be an array or an object that implements Countable in /private/var/www/html/wordpress/wp-includes/post-template.php on line 284
パスはwordpressを置いている場所によって変わるので人によって違います。
テーマやプラグインによるもの
発生する理由がテーマやプラグインの場合もあります。
原因
PHP7.2の変更点
今までのバージョンではcount()にNULLでも0を返してくれていましたが、Warningが出るようになったようです。
メッセージの内容
Warning: count(): Parameter must be an array or an object that implements Countable in /private/var/www/html/wordpress/wp-includes/post-template.php on line 284
countの引数には配列、もしくはカウントすることができるオブジェクトでなければいけない。
1 | count(NULL); // 今までは0になる |
対処方法
WordPressのバージョンを上げる
WordPressのバージョンを上げることで対象箇所が最新で対応される可能性があります。
テーマやプラグインの場合でも確認して最新版にしましょう。
対象箇所を書き換える
これは応急処置となります。何か理由があってバージョンを変えたりできない場合に行いましょう。
メッセージの出ているファイルの対象行を書き換えましょう。
php7.2からバージョンを下げる
他の方法で対処できない場合などに。
php7.2からWarningが発生するようになっているのでphpのバージョンを7.1などに戻すことで解決します。