Search and filterのエラー – PHP7.2 count()

ワードプレス

絞り込み検索が実装できる便利なプラグイン「Search & Filter」

フリーなのが素敵です。

PHP7.2~でのcount()のエラー

ショートコードに書くと気が付かないですが、「do_shortcode」で表示するとエラーに遭遇します。

※ショートコードを書いたページでエラーは発生するが、ページ遷移するので表示されない、ということ。

例えば、index.phpに書いて常時表示されるようにすると、このエラーが見られます。

説明がややこしい、、、

 

Warning: count(): Parameter must be an array or an object that implements Countable in サイトURL/wp/wp-content/plugins/search-filter/of-taxonomy-walker.php on line 122

このメッセージが出る原因や対処の記事はけっこう見つかります。

簡単に言うと「数えられないものを数えさすな!」ということのようです。

対処

このエラーが出ても動作に影響はないので、「error_reporting(0);」で黙らせちゃってもいいですが、何となく気持ち悪いです。

 

ので、エラー発生場所(プラグインフォルダの「of-taxonomy-walker.php」122行目)を修正します。

//修正前
				$noselected = count($this->defaults);

//修正後
			if (is_countable($this)) {
				$noselected = count($this->defaults);
			}else{
				$noselected = 1;
			}

「count($this->defaults)」の部分を書き換えて対処するような記事もありますが、今例ではフィクスできません。

プラグインファイルを直接書き換えているので、「このプラグインだけ更新を表示させない」などの対処が必要です。