『WordPress Ping Optimizer』がPHP7.2以上でエラーになる問題【コード編集で改善する方法】

※当サイトでは広告を掲載しています。またアフィリエイトプログラムを利用して商品やサービスを紹介しています。

 

PHPのバージョンを7.2以上にしたら、『WordPress Ping Optimizer』でエラーが発生したのでその対処方法をご紹介。

発生したエラーはこちら。

ブログのトップページや記事の上部に見慣れない文言が並んでいます。

PHPのバージョンを7.2以上にしたら発生する『WordPress Ping Optimizer』のエラーメッセージ

Warning: count (): Parameter must be an array or an object that implements Countable in /●●●●/●●ユーザー名/●●ドメイン/●●フォルダ名/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533 

詳しいことはわからないのですが、何やらWordPressに設定している「WordPress Ping Optimizer」というプラグインでエラーが発生したことが分かります。

さらによく見ると「cbnet-ping-optimizer.php on line 533」とあり、PHPファイルの533行目が原因のようです。

というわけで、この533行目を何とかすればエラーが解消されることが分かりました。

 

さてここからどうすべきか?

PHPに詳しくないので困っていたのですが、調べてみるとWordPressのフォーラムで全く同じエラーの相談がありました。

しかも回答を確認すると、分かりやすく解決方法が記載されています。

関連記事:「WordPress Ping Optimizer」がPHP7.2でエラーを出す件について | WordPress.org

そこで回答に従い533行目を指定のコードに変更したら、無事エラーが改善されました。

今回はこのWordPressのフォーラムで紹介されていた解決方法を、少しだけ補足する形で紹介します。

PHPの編集に詳しい方は、上記関連サイトを見ていただければ簡単に解決すると思います。

※記事内のリンクにプロモーションを含む場合があります。

『WordPress Ping Optimizer』PHP編集前の注意事項

『WordPress Ping Optimizer』PHP編集前の注意事項

今回のエラーはプラグインのPHPを直接編集します。

PHPの編集はミスってしまうと、データが壊れてしまったり最悪ブログが真っ白になったり、WordPressにログイン出来なくなることさえあります。

そのためPHPの編集前には、必ずWordPressのデータをバックアップしてください。

どんなに簡単な編集でもバックアップ必須です。

逆にWordPressのバックアップ方法やリカバリーの方法が分からない場合は、PHPの編集は避けるべきです。

とりあえず「WordPress Ping Optimizer」を一旦「停止」してエラーを解除後に、バックアップ方法やリカバリー方法をマスターしてからPHP編集されることを強くお勧めします。

エックスサーバー限定となりますが、こちらで「WordPressを手動でバックアップする方法がエックスサーバーなら驚くほど簡単【迷わずできる】」バックアップ方法の解説をしていますのでよければ合わせてご参照ください。

「WordPress Ping Optimizer」でPHPのエラーが出た場合の対処方法

※下記の対処方法は「WordPress Ping Optimizer」の【バージョン 2.35.1.0.0】まで改善されることを確認しています。

1:「WordPress Ping Optimizer」を「停止」する

まずは一度プラグインを停止して、「WordPress Ping Optimizer」がエラーの原因であることを確認しましょう。

「WordPress Ping Optimizer」を「停止」する

2:「WordPress Ping Optimizer」のPHPファイルを開きます

WordPressのメニューから「プラグイン編集」⇒編集するプラグインを選択から「WordPress Ping Optimizer」を選択してください。

「WordPress Ping Optimizer」のPHPファイルを開く

3:533行目を指定のコードに変更します

下記サイトの回答に記載されたコードで533行目を変更しましょう。
※【バージョン 2.35.1.0.0】まで。【バージョン 2.35.1.1.0】以降はエラー対策がされておりPHPの修正は不要です。

関連記事:「WordPress Ping Optimizer」がPHP7.2でエラーを出す件について | WordPress.org

【変更前】
$pingCount=count($this->cbnetpo_future_pings);

「WordPress Ping Optimizer」の533行目を指定のコードに変更する前の画像

【変更後】
$pingCount = $this->cbnetpo_future_pings ? count( $this->cbnetpo_future_pings ) : 0;

「WordPress Ping Optimizer」の533行目を指定のコードに変更後の画像

533行目を変更後のコードにしたら「ファイルを更新」してください。
※データのバックアップはしましたか?稀に「ファイルを更新」ボタンを押したあとにエラーとなることがあるので注意!

「WordPress Ping Optimizer」の533行目を変更後のコードにしたら「ファイルを更新」

4:「WordPress Ping Optimizer」を有効化

「WordPress Ping Optimizer」を有効化して、エラーが改善されていることを確認しましょう。

「WordPress Ping Optimizer」を有効化

『WordPress Ping Optimizer』PHP編集後の注意事項

最後にPHPを編集後の注意点。

あくまで今回の対象方法は応急処置です

まず今回の対処方法は、フォーラムで回答されている方も書いていますがあくまで「応急処置」です。

そのため完全な解決には、プラグインのアップデートを待つしかないです。

ちなみに「WordPress Ping Optimizer」は、2019年5月に「バージョン 2.35.1.0.0」にバージョンアップしましたが、その際には残念ながら改善されていませんでした。

プラグインがアップデートされたときは再度対応が必要です

プラグインのPHPを直接編集しているため、「WordPress Ping Optimizer」がアップデートされるたびにリセットされ再度対応が必要になります。

プラグインがアップデート後、エラーが発生している場合には改めて該当箇所を確認しましょう。

またアップデート後は、今回ご紹介した方法では改善されない場合もありますのでご注意ください。

※「WordPress Ping Optimizer」の【バージョン 2.35.1.0.0】まで改善されることを確認しています。
それ以上のバージョンでは確認しておりませんので予めご了承ください。

エックスサーバーで「Xアクセラレータ Ver.2」を利用したい場合は対応必須

エックスサーバー利用者限定となりますが、「WordPress Ping Optimizer」利用しながら「Xアクセラレータ Ver.2」にしたい場合は対応必須です。

「Xアクセラレータ Ver.2」はサイトを高速化させる有難い機能なのですが、利用条件としてPHP7.2以上となります。

そのためPHP7.1以下で「WordPress Ping Optimizer」を利用していれば、必然的にエラーが発生してしまいますね。

まとめ

PHPのバージョンを7.2以上にすると発生する、『WordPress Ping Optimizer』のエラーを改善する方法について紹介させていただきました。

実はこのエラー、プラグインがアップデートしたら改善しないか少し期待していたのですが、2019年5月のアップデートでは残念ながら改善されていませんでした。

Ping送信を制御するプラグインとしてとても優秀なので、できればこのまま利用していたいのですが、バージョンアップのたびに対応が必要なら少し考えないといけないですね。

PHPの編集はリスクが伴いますし、いつまでこの方法で対応できるかも分かりません。

正直Google Search Consoleでインデックス登録をすれば、Ping送信は不要なんじゃないかと思っているので、思い切ってPingの送信先を削除してしまうのが一番の解決策なんじゃないかと・・・・。
(参考:新しいGoogle Search ConsoleでURLのインデックス登録をリクエストする方法【新サチコでもFetch as Google】

PHP編集がどうしても怖い方は、選択肢としてありだと思います。

※2019年7月追記

2019年7月のアップデート【バージョン 2.35.1.1.0】では、エラーが発生しないことを確認しました。

PHPファイルを確認したところ、内容が少し変更されているようです。

詳細を確認したわけではありませんが、どうやらエラー部分について修正対応をしていただいたようでありがたい!

今後はアップデートの度に、危険なPHPの修正をしなくてもよさそうです。

この記事については、念のためしばらく公開のままにしておこうと思います。

関連記事

 

※当サイトでは広告を掲載しています。またアフィリエイトプログラムを利用して商品やサービスを紹介しています。

@ikasenmoをフォローする

こちらの記事も読まれています