Warning: count(): Parameter must be an array or an object that implements Countable in~

PHPを7.2にしたら、今まで問題なかったプラグインに対して、Warning: count(): Parameter must be an array or an object that implements Countable in~ などというエラーが…

count関数が変数の中を数えられないって???

こんなことこれまでなかったのに
いきなり数えるの拒否?

どうやら、PHP7.2で count()関数の仕様が変更になったようです
どうやらcountで数えたい変数の中身がNULLだとエラーになるようになったようです

なので、countしたい変数がNULLじゃなかったら、countしてよ♪
と、if文で追記してエラー回避

 

例)$serrchが空じゃなかったらcountしてよね!

			if ( count( $search ) === 1 ) {
				$settings = $this->create_ghost_settings( $settings );
			} else {
				$settings[ $this->ID ] = $this->create_ghost_settings( $settings[ $this->ID ] );
			}
		

		if ( ! empty( $search ) ) {

			if ( count( $search ) === 1 ) {
				$settings = $this->create_ghost_settings( $settings );
			} else {
				$settings[ $this->ID ] = $this->create_ghost_settings( $settings[ $this->ID ] );
			}
		
		} else {
        	$search = 0;
    	}

 

 

最近EC-CUBE3(もうEC-CUBE4が出たけれど)で、記述が間違っていないはずなのにどうしてもエラーが出ることが
原因はタブだった…
くせでブランクを半角ではなくタブ使っていたのが原因
タブはダメって知っていたのに実践できていなかった
無駄な時間を費やしてしまいました

WordPress The Events Calendarプラグイン!

カレンダーを表示するプラグイン The Events Calendar すばらしすぎです!

何がって、カスタマイズし放題!!

 

・デフォルト表示の色がサイトに合わなくても、cssファイルで大幅修正可能

・表示したくないものもcssで修正可能!

・そして何より、設定されているタグ類の使用方法が公開されているので、WPの外で使うことも可能!

 

トップページにがっつりカレンダーを表示するのではなくて、よくある新着情報のような形で表示させ、カレンダーで見たかったらこっち、直接記事を見たかったらこっち、のようにカスタマイズもできるし

 

↓とても参考にさせていただきました
【WordPress】ウィジェットでなくトップページにそのままイベントカレンダーを表示できるプラグイン

 

追記するなら、The Events Calendarは、
投稿タイプ = tribe_events   タクソノミー = tribe_events_cat
です。

 

【スラッグの取得】

$cateslugs = tribe_get_event_cat_slugs( $post->ID );
echo $cateslugs[0];

 

【ターム名の取得】

$terms = get_the_terms( $post->ID , 'tribe_events_cat' );
foreach ( $terms as $term ) {
	echo $term->name;
}