サポート » プラグイン » 「WordPress Ping Optimizer」がPHP7.2でエラーを出す件について

  • 解決済 torasan

    (@torasan)



    お世話になります。

    エックスサーバーを利用しているのですが、PHPのバージョンを7.2に変更したところ、プラグイン「WordPress Ping Optimizer」が以下のようなエラーを出すようになりました。

    “Warning: count (): Parameter must be an array or an object that implements Countable in /home/gerrysey/domains/wncselfdefense.com/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533 ”

    該当箇所は、
    $ pingCount = count ($ this-> cbnetpo_future_pings);で

    var_dumpでpingCountの値を表示させたところ「1」を返したので、

    $ pingCount = count ($ this-> cbnetpo_future_pings);を
    $ pingCount = 1;にしたところエラー自体は表示されなくなりました。

    Countableに関してよくわからないので、応急処置的な方法ですが、
    エラーが出ないという事はプラグインの動作に問題はないのでしょうか?
    それともただ単にエラーが消えただけという状態なのでしょうか?

    PHP7.2環境で「WordPress Ping Optimizer」を使用してエラーが出ない方法というのを、ご存知の方がおられましたらご教示お願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • こんにちは

    サポートフォーラムの下記トピックが参考になると思います。
    https://wordpress.org/support/topic/php-7-errors-7/#post-9885976

    ishitaka様

    返信ありがとうございます。
    サポートフォーラムのトピックは見たのですが、
    問題1である以下の部分について何をすればよいのかわからなかったです。
    if (is_null($this->cbnetpo_future_pings))
    $pingCount=0;
    else $pingCount=count($this->cbnetpo_future_pings);

    サポートフォーラムにある
    問題2:私は以下のコンストラクションメソッドの代わりに使用した
    __construct
    は何を意味するものなのでしょうか?

    応急処置としては下記のように変更するといいかと思います。

    $pingCount=count($this->cbnetpo_future_pings);

    $pingCount = $this->cbnetpo_future_pings ? count( $this->cbnetpo_future_pings ) : 0;

    エラーが出ないという事はプラグインの動作に問題はないのでしょうか?

    直下のコードが下記のようになっているので、WP 2.4 以上であれば値に関係なく処理を抜ける(return)ため、$pingCount の値による処理への影響はなかったのだと思います。

    if ( $pingCount <= 0 || $this->cbnetpo_wp_version >= 2.4) {
    	return true;
    }

    ishitaka様

    大変丁寧にご回答いただきありがとうございます。
    教えて頂いたコードでエラーなく表示されています。
    $ pingCount = 1;でエラーが出ないからいいという問題ではないのですね、やはり…。
    今回修正したコードで動かしてみます。
    ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「「WordPress Ping Optimizer」がPHP7.2でエラーを出す件について」には新たに返信することはできません。