上へ

PHP7.2.1に変更してから出るようになったWarning: count(): エラー

ワードプレスで使用するPHPバージョンを「PHP7.2.1」に変更すると出てくることがあるこのエラー。

正確には「Warning: count(): Parameter must be an array or an object that implements Countable in /・・・/public_html/wp-includes/media.php on line 1206」

同一ページで使っている画像の枚数分だけ繰り返して出現してくれるエラーです。

とりあえずワードプレスデフォルトのテーマテンプレートに変更してみるとこのエラーはでません。そうなると今使っているテンプレートに問題と特定。

あちこちのコードを剥しては戻すという動作を繰り返して、ようやくfunctions.phpに目処をつける。functions.php内のコードを適当にまとめて剥したら、エラーが出現しなくなりました。そこでバックアップしといたfunctions.phpをFTPでアップロード。今度は少しずつ剥しながら、もとに戻すという動作を繰り返しながら、エラーが出る行を突き止める。

ありました。
「function disable_srcset($sources){return false;}add_filter( 'wp_calculate_image_srcset', 'disable_srcset' );」
です。

srcsetはワードプレスが画像に自動設定する属性で、これを無効化してたんですね。
でもこのコードではきちんと動作しないようです。

上記のコードを
「add_filter( 'wp_calculate_image_srcset_meta', '__return_null' );」
に変更。

これできちんと動作します。

ちなみにこのエラーで問題となるのは、投稿に画像を使っている場合です。テンプレートのコード内から呼び出している画像は関係ありません。