worldPress5.2 PHP8.1以降にエラー発生
アフィリエイトにカッテネを利用しています。
このエラーを見つけた時、まじか!と唖然としました。
今更、他のプラグインにして記事ひとつづづ書き換えるのもめんどくさい。
修正できるものなら修正したい!ということで、数時間検索して調べてみたら何とか修正できました。
エラーの内容
「Warning: Undefined array key “main” in /*省略*/wp-
content/plugin/kattene/plugin.php on line 44」
「Warning: Trying to access array offset on value of type null in….」
この2種類が記事の上に表示されていました。
エラーの内容は、PHPの記述が古いということで新しいバージョンではエラーとなるということでした。
確かにカッテネは1年以上更新していないので、この機会の他のプラグインに変える方もいるんじゃないでしょうか・・・
ワタシのようなめんどくさがり屋さん、少しの修正で上記のエラーが消えましたので、試してみてください。
エラーコードの修正
「Warning: Undefined array key “main” in /*省略*/wp-
content/plugin/kattene/plugin.php on line 44」
参考したサイト
まずはpluginフォルダからketteneを探して、プラグイン「カッテネ」のplugin.phpを編集します。
plugin.phpに以下の文字列があります。
$main_tmp = array_filter($sites,
function($site){
return $site["main"];
}
);
$main = array_pop($main_tmp);
上記の部分を下記のように修正します。
$main_tmp = array_filter($sites, function($site){ return isset($site["main"]) && $site["main"]; } ); $main = !empty($main_tmp) ?array_pop($main_tmp) : null;
赤い字が修正部分です。
ページをリロードして見てください、エラーは解消されているかと思います。
次に
「Warning: Trying to access array offset on value of type null in….」
調べてみると、PHP記述がちがってるよ~という事のようです。
修正したコードはコチラ↓
$str= '<div class="kattene">
<div class="kattene__imgpart">
<a' .$target_blank_str.' href =".$main ["url"]."><img' .$lazyloading_str. ' src="'.$arr["image"].'" '.$shadow_str.'></a></div>
<div class="kattene__infopart">
<div class="kattene__title">
<a'.$target_blank_str.' href=".$main ["url"].">'.$arr["title"].'</a></div>
<div class="kattene__description">'.$arr["description"].'</div>
<div class="kattene__btns '.$num_class.'">';
どこを修正したかというと
エラー部分に番号段落が書いているのでそこを調べてみました。
そうすると、
修正したコードは下記です。
$str= '<div class="kattene">
<div class="kattene__imgpart"><a' .$target_blank_str.' href =".$main ["url"].">
<img' .$lazyloading_str. ' src="'.$arr["image"].'" '.$shadow_str.'></a></div>
<div class="kattene__infopart">
<div class="kattene__title">
<a'.$target_blank_str.' href=".$main ["url"].">'.$arr["title"].'</a></div>
<div class="kattene__description">'.$arr["description"].'</div>
<div class="kattene__btns '.$num_class.'">';
下記のコードはhref=”‘.$main[“url”].‘“の「’」部分だけ削除する前です。
2か所あります。
$str = '<div class="kattene">
<div class="kattene__imgpart"><a'.$target_blank_str.'href="'.$main["url"].'">
<img' .$lazyloading_str. ' src="'.$arr["image"].'" '.$shadow_str.'></a></div>
<div class="kattene__infopart">
<div class="kattene__title">
<a'.$target_blank_str.'href="'.$main["url"].'">'.$arr["title"].'</a></div>
<div class="kattene__description">'.$arr["description"].'</div>
<div class="kattene__btns '.$num_class.'">';
たったこれだけで、エラーが解消されました。
ページをリロードして確認してみてくださいね。
コメント