最近ひさしぶりに新規ドメインを取得して新規サイトを立ち上げました。
サーバーにドメイン登録してワードプレスインストールして、プラグイン入れてーと
ひと通り使えるようにしたのはいいものの、サイトをチェックするとヘッダーの上に見慣れない文字が。
Warning: count (): Parameter must be an array or an object that implements Countable in /ドメイン名など/public_html/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533
あれ?なんだこれ?
今までこんなの出たことないけど?(;´・ω・)?
ワードプレスでいくつかサイトは持っていますがこういう難しいのはまったくわからないんですよね汗
でも、なんだかとりあえずプラグインのping optimizerが悪さをしてることはわかる(書いてある)。
でもわかるのはそこまで(;”∀”)
誰か詳しい人たすけてー!ってことでgoogle先生で検索してみました。
でも検索した結果なんか解決法らしきものは書いてあるんですけど、詳しい人達が難しいこと言ってて私のような初心者には全然わかんないんです・・(´;ω;`)
でもこのままにしとくわけにはいかーん!とさらに検索して、ようやく見つけました!
私が参考にしたのはワードプレスサポートフォーラムのこの記事とこちらのサイト。
これらも参考にしつつ、私がping optimizerプラグイン由来のWarning: count (): を解決した方法を初心者にわかりやすく書いていきたいと思います。
Warning: count (): の解決法
Warning(警告)の詳しい内容
もう一度表示されている警告文をみてみると、
Warning: count (): Parameter must be an array or an object that implements Countable in /ドメイン名など/public_html/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533
とあります。
とにかくping optimizerのcount()という項目がお気に召さない様子。
でも他のサイトにもping optimizer入れてるけどこんな表示出たことないし・・
対して今回エラーが出たのは新規サイト。
『使用しているテーマも同じ・・うむむ・・』と考えた結果、
結論:PHPのバージョンが違ったのでした。
他のサイトはPHP7.0.30、
新規サイトはPHP7.2.6。
よくよく調べてみるとping optimizerはPHPバージョン7.2でWarning: count ():が出るみたいです。
これが問題だったんですね。
PHPバージョンの確認方法は?
PHPバージョンの確認方法はいろいろあるようですが、初心者はサーバーで確認するのが簡単です。
例)エックスサーバー
①サーバーパネルにログインし、PHP Ver.切替を選ぶ
②PHPバージョンを確認したいドメインを選び、「選択する」をクリック
③左側に現在のPHPバージョンが表示される
この方法でPHPのバージョンが確認できます。
Warning: count ():を解決するには
ping optimizerのWarning: count ():を解決するには、「プラグインの編集」が必要です。
これは必ずバックアップを取ってからおこなってくださいね。
あと私はこの方法で解決しましたが、コードの編集はあくまで自己責任でお願いしますm(_ _)m
で、くどいようですが警告内容は
Warning: count (): Parameter must be an array or an object that implements Countable in /ドメイン名など/public_html/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533
なので、ping optimizerプラグインの記述の533列目に問題があるようです。
そこで作業の手順は以下のとおり。
①ping optimizerプラグインを停止
②警告(Warning)が表示されないことを確認
③「ダッシュボード」→「プラグイン」→「プラグインの編集」
④「WordPress Ping Optimizer」を選ぶ
⑤533列目の記述を以下に変更
$pingCount=count($this->cbnetpo_future_pings);
↓変更
$pingCount = $this->cbnetpo_future_pings ? count( $this->cbnetpo_future_pings ) : 0;
変更したら「ファイルを更新」をクリックして保存。
⑥ping optimizerプラグインを再び有効化する
⑦警告が表示されなければOK!
まとめ
WordPress Ping Optimizerが原因でサイト上部にWarning: count ():が表示される場合は、おそらくPHPのバージョンが原因です。
PHP7.2でこういった警告が出ます。
対処法は以下の通り。
- ping optimizerプラグインを停止
- 警告(Warning)が表示されないことを確認
- 「ダッシュボード」→「プラグイン」→「プラグインの編集」
- 「ping optimizer」を選ぶ
- 533列目の記述を変更→保存
- ping optimizerプラグインを再び有効化
- 警告が出なければOK
ただしプラグインの編集でコードを書き換えるので、
- 必ずバックアップをとってから
- 書き換えはあくまで自己責任で
お願いしますね。
参考になれば幸いです。