初期診断

Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, … given

WordPress の「count(): Argument #1 ($value) must be of type Countable|array」:原因と確認方法

更新日 2026-11-01

PHP 8.0 以降、count() に配列や Countable オブジェクト以外を渡すと TypeError が発生します。PHP 7 では警告だけだったため、null や文字列を数える古いプラグインやテーマは、PHP の更新後にサイトを止めてしまいます。

どの状況に当てはまりますか?

PHP 7 では警告で済んでいたコードが、致命的エラーで止まるようになりました。

そのページで、コードが空の値や文字列を数えています。

主な原因

PHP 7 向けのコード:プラグインやテーマが PHP 8 向けに更新されていません。
空のオプションやメタ情報:配列であるべき値が空か文字列になっています。
保守されていないプラグインやテーマ:ホストが現在使っている PHP のバージョンに対応したリリースがありません。

参考資料

  1. count() (PHP.net)
  2. Backward incompatible changes in PHP 8.0 (PHP.net)

自分で作業したくない方は、WP119 の全自動復旧にお任せください

白画面や致命的エラー(プラグインの競合、PHP バージョンの非互換)は自動処理の対象です。復旧ステーション上の複製でデバッグモードを有効にし、原因のプラグインまたはテーマを特定して無効化します(削除はしません)。メモリ不足による白画面はメモリ上限を引き上げて対処します。復旧後はトップページと内部ページを再検証し、合格した場合のみお客様のホストに書き戻します(WP 管理画面モードでは復旧完了パッケージをお渡しします)。復旧は復旧ステーション上のサイトの複製で行い、再検証に合格してから書き戻します。サイトのデータベースのうち、保護対象テーブル(会員・コメント・注文・フォーム送信)は構造のみ取得します。SSH/FTP モードでは、書き戻しの前にお客様のホストに復旧前バックアップを作成し、書き戻し後の検証に合格しなかった場合はそのバックアップから復元します。復旧を完了できなかった場合、復旧料は全額返金します。

  1. 初期診断:サイトの URL を入力
  2. 復旧ステーションに複製:複製上で作業
  3. 原因の特定:項目ごとの確認
  4. 復旧と再検証:トップページと内部ページ
  5. 書き戻しまたは納品:再検証に合格した場合のみ

PHP の更新後にこのエラーが出て、サイトに重大なエラーが表示される場合は、WP119 にお任せいただけます。

サイトを初期診断する →
初期診断 →