【WordPress】PHP7.2でWordPress Ping Optimizerがエラー(応急処置)
前記事でPHP7.2のスピードテストを確認しておりましたが、エラーが出ていました
PHPエラー内容
count(): Parameter must be an array or an object that implements Countable
パラメータは、配列またはCountableを実装するオブジェクトでなければなりません
PHPエラー場所
cbnet-ping-optimizer.php(533行目)
PHP触ってると、パラメータが数値じゃないとダメとかオブジェクトじゃないとダメとか、たまにみるエラーですかね
さて、PHP7.1で動いてて7.2でエラーという事は7.2での変更点に引っかかってるという事
「WordPress ping Optimizer」は外したくないプラグインなのでなんとかしたいところです
count()のPHP7.2での変更点
count() will now yield a warning on invalid countable types passed to the array_or_countable parameter.
count()は、array_or_countableパラメータに渡された無効なcountable型に関する警告を出力するようになりました。
「WordPress ping Optimizer」を修正するべきか
そもそも「WordPress ping Optimizer」は過剰なWordPressのPING送信を制御する機能
記事投稿・更新時以外にも動いていたの?ページ表示時になにか機能する意味があるのだろうか
なんとも言えないけど、エラー場所となっている533行目
$pingCount=count($this->cbnetpo_future_pings);
まあ、どうせパラメータ値がおかしいというより、空のパラメータで実行しようとしただけだろうと、とりあえずNULL判定で実行を回避してみる?と思ったけど手前で既にNULLチェックはされてた
「$this->cbnetpo_future_pings」をチェックしたところ中身は「bool(false)」
正常な時の値がわからないのだけど判定に$this->cbnetpo_future_pings === falseを追加しておいた
if (is_null($this->cbnetpo_future_pings) or $this->cbnetpo_future_pings === false){
$pingCount=0;
}else{
$pingCount=count($this->cbnetpo_future_pings);
}
ひとまずエラーは消えましたが、プラグインがアプデされるまでの応急処置ですね
でも「WordPress ping Optimizer」はページ表示時にも読み込んでるとはなー
試しに外したら2クエリ減ったよ、ふーむ
ディスカッション
コメント一覧
まだ、コメントがありません