PHP8でAds by datafeedr.comの管理画面がエラーだとよ。

Ads by datafeedr.comを入れたままPHP8に変更したら、そのまま動作はするが管理画面でエラーが発生なのでざっくりと対応してみた。

なんだかんだ代替プラグインがないこともあるんでどうにかね。

 

エラー内容:Uncaught TypeError: Cannot access offset of type string on string

配列の問題ね。厳格化になっていっているからね。

 

エラーを対処するまでの流れ

1.ワードプレスのデバックモードを有効にする

2.エラーのプログラムと行と内容を特定する

3.今回はPHP7系で警告出ていると思うから内容を確認。

4.配列の定義あるときとないときの対処の記述がないのでそのあたりをごにょごにょと記述する。

「(get_option( ‘dfads-settings’ )」の値がないのに「$output[‘dfads_enable_shortcodes_in_widgets’]」=XXXXって

それはそれは怒られます。

ざっくりとemptyで判定しといた。

    	        $output = array(
			'dfads_enable_shortcodes_in_widgets'=>0,
		);
		if(!empty(get_option( 'dfads-settings' )))
		{
			$output = get_option( 'dfads-settings' );			
		}

もう1箇所出ていたから同じような感じで。

あとは、phpの7と8で試してOKでした。