先日ブログを改修しました。
新規ドメインの取得からコンテンツ移管、ウェブツール(アナリティクスやサーチコンソールなど)の再設定、リダイレクト設定など、ドメイン変更に伴う作業は結構ありますが、作業を全て終えページを確認してみるとサイトの一番上にこんな表示がありました。
Warning: count(): Parameter must be an array or an object that implements Countable in /home/(ここは秘密)/ksonoda.com/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533
ググってみたらこのブログに入れている「WordPress Ping Optimizer」というプラグインが原因のエラーメッセージでした。
このプラグインはpingの自動送信をしてくれる機能があり、入れておくべき大変便利なプラグインなのですが、PHPのバージョンが7.2 だとエラー表示がでてしまうとのこと。
ただ、このエラーメッセージはファイル内のコードを一行書き換えるだけで解決したので今日はその方法をご紹介します。
ちなみにこのエラーの意味は「/home/(ここは秘密)/ksonoda.com/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php」のファイルの中の533行目がおかしいから直してねという意味。
/(スラッシュ)で区切られた表記はファイルのある場所を示しています。FTPクライアントなどでファイルを探す場所はコピペで検索か、フォルダを辿っていけばファイルが見つかります。
【作業準備】まずはプラグインを停止しよう
まず最初にすべきことはWordPressの管理画面からプラグインの停止です。左側のメニューからプラグインを選択し、インストール済みのプラグインから「WordPress Ping Optimizer」を停止させます。
これで作業の準備が整いました。
【作業】プラグインのコードを編集しよう
次にプラグインのコードを編集します。
ここではワードプレスの管理画面で完結できる方法を紹介しますが、僕はFTPクライアントを使ってファイルを書き換えました。どちらでも好きな方で作業してもらってOKです。
ただし念の為バックアップはしっかり取りましょう。
プラグインエディターを選択
WordPressの管理画面のメニュー「プラグイン」から「プラグインエディター」を選択します。
指定のプラグインを選ぶ
画面が切り替わると思うので、右上の「編集するプラグインを選択」から「WordPress Ping Optimizer」を選び「選択」をクリックします。
コードを編集
すると「WordPress Ping Optimizer」のコードが表示されるので、エラーメッセージにあった533行目を見ます。
とりあえず今は意味がわからなくてもOKです。ここを下記のように書き換えましょう。
元からあったこの表記を、
$pingCount=count($this->cbnetpo_future_pings);
こうします。
$pingCount = $this->cbnetpo_future_pings ? count( $this->cbnetpo_future_pings ) : 0;
このコードをそのままコピペでOKです。
コピペし終えたら、画面下の「ファイルを更新」をクリックして完了です。
インストール済みプラグイン一覧から「WordPress Ping Optimizer」を再度有効化して、エラーが出ていないか確認してみましょう。
以上です。
簡単でしたね。同様のエラーが表示されてしまった方はぜひ参考にしてみてください。
【おまけ】エラーの原因
文頭にも述べましたが、このエラーメッセージはPHP7.2でcount()関数の仕様が変更になったことが原因だそうです。以前のバージョンではcount(NULL)では警告が出ずに0を返していましたが、これが変更になって警告が出る仕様になったみたいです。
プログラミングを理解していないと見ても???だと思うので、まぁあまり調べすぎなくても大丈夫です。
今日お伝えした方法でエラー表示は消えますからね。
では。