【Wordpress】Ping Optimizerでエラーが発生!プラグインを止めるか悩んだ結果。
katsuです。僕のブログは「WordPress」で制作しています。様々なプラグインを使って、自由度の高いサイトを作れるのですが・・・
突然プラグインが原因でサイトにエラーが発生しました!
サイトの上部にこんな感じでメッセージが表示されたのです。
Warning: count(): Parameter must be an array or an object that implements Countable in ○○○○○/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533
「○○○○○」の部分はサーバーのディレクトリ構成が表示されてしまっています。(こんなの表示されていいのかな・・・)
原因はこの警告に書かれているとおり、プラグイン「Ping Optimizer」で間違いないでしょう。早速Ping Optimizerを停止したところ、警告は消えました。朝っぱらから焦りました・・・。
さて、とりあえずプラグインを停止したものの、どのように対策するべきか。対策方法を備忘録として残すことにします。
Ping Optimizerを更新した瞬間にエラーが発生した?
このエラーが発生したのはPing Optimizerを更新した直後でした。こちらの画像をご覧ください。プラグイン更新履歴のスクリーンショットです。
どうやらバージョン2.35.1.0.0に更新した瞬間にエラーが発生したようです。WordPress5.2に対応させたと書いてあるので、そこそこ大きな変更が行われたのでしょう。
さて、このようにプラグインのバージョンアップによって発生したエラーは、プラグインを古いものに戻せば解決するはず。バックアップから元に戻そうか?と一瞬思いましたが、それはめんどくさい。そもそもPing Optimizerなんて必要なの?そんなこともいろいろ考え、対策を行うこととしました。
Ping Optimizerでエラーが発生する真因
Ping Optimizerのエラー発生は、結論から言いますとPHPのバージョンに関連するものでした。PHPとはプログラム言語の一種で、サーバーで対応できるバージョンとプラグインで対応できるバージョンがそれぞれ決まっています。
Ping Optimizerの場合、先程のスクリーンショットにあったように必須PHPバージョンは5.6以上となっています。つまり、サーバーのPHP対応バージョンが5.6以上であれば良いという意味です。
しかし・・・どうやら新しすぎるのもダメなようです。僕が使っているスターサーバーでは、PHPバージョンが7.2.6と設定されていましたがプラグイン側が対応できないようですね。
今回のエラー発生要因は、このPHPバージョンにあると考えられます。Ping Optimizerのバージョンアップにより、何らかの不具合が発生したものと考えられます。逆にこれまでサーバーのPHP7.2.6に対応できていたのはナゼかわかりません。
Ping Optimizerのエラー対策方法
さて、これまでの原因から、エラーの解決方法には以下の方法が考えられます。
②そもそもPing Optimizerを使うのをやめる
③Ping Optimizerのバージョンアップを待つ
③は将来的に対応できるとしても、即効性が無いためNGです。そこで①と②のどちらかを行う必要があるのですが、それぞれメリットとデメリットがありそうです。それぞれ考えてみましょう。
サーバーのPHPバージョンを下げる方法
サーバーのPHPバージョンを下げることで、Ping Optimizerのエラーを解除することができます。僕の場合、サーバーのPHPバージョンは7.2.6でしたが、「PHP7.0.30」に変更することでエラーは出なくなりました。
「PHP7.1.18」というバージョンもありますが、これではダメです。必ず「PHP7.0.30」にしましょう。このあたりはレンタルサーバーによって設定方法、PHP保有バージョンが異なるはずです。
さて、PHPバージョンを下げることによるデメリットはほぼ無いと考えられます。僕が使っている他のプラグインは定番とも言えるものばかりですし、最新のPHPでなければダメというものはありません。
ただ、サーバーで使える最新のPHPを使わず、わざわざ古いものを使うということに少し抵抗が残る程度です。
【広告】
ブログを始めるならサーバー選びからです。
公式サイト>>ロリポップ!
Ping Optimizerの使用をやめてしまう方法
これは対策というか、根本的なお話ですね。そもそもPing Optimizerは必要なのか?ということです。プラグインは少なければ少ないほうがWordpressの速度、安定性も上がります。
Ping Optimizerは、勘違いされている方がいるかもしれませんがPing(ピング:ブログの改定情報)を様々なサイトに通知するプラグインではありません。Pingの送りすぎを防止するためのプラグインです。
Ping自体は、実はこのようにWordpressの標準機能として存在しています。この画像のように、通知したいURLを登録しておけばWordpressが自動的にPing送信してくれます。
ただ、WordpressのPing送信機能は記事を下書きしたとき等もバンバンPing送信してしまいます。これが通知先サイトにとってスパム扱いとなってしまうのではないか、ということです。それを抑制するのがPing Optimizerです。
さて、プラグインを使う場合と使わない場合では、こんなメリット・デメリットが考えられます。
・Pingの送信しすぎを抑えられる。ただし記事を書くときに下書き機能を使わないならあまり意味が無い可能性がある
・Ping送信した際、うまく送信できたかどうかログを残すことができる
・プラグインを1個削減し動作の高速化が狙える
・わずらわしいPingの送信先管理から開放される
こんな感じでしょうか。そもそもこのプラグインは、SEO対策効果(検索エンジン最適化)を狙うためのものですが、Pingの送信を抑制することが本当に良いのかどうかは謎なのです。
WordPressの標準機能なのに本当に各サイトからスパム扱いされてしまうものなのでしょうか?こればかりは試してみるしかありません。いや、試しても成長過程にあるブログではその効果を見誤る可能性があります。
こうしてPing Optimizerのエラーを解決しました
結果、僕はサーバーのPHPバージョンを下げる方法を選びました。
プラグイン自体を停止してしまうことによってブログの成長を妨げる可能性がある以上、抹消することを断念しました・・・。
ただ、本当にPing Optimizerが効果的なのかどうかはわかりません。今後も調査を進め、もしもPing自体が必要の無いものであれば、プラグインを消す可能性もあります。
こういうときにブログの運営って大変だなあと感じます。ブロガーのみなさん、お互いに頑張りましょう!