カッテネ プラグインがエラーコードをはいてる!

katteneプラグインWebサイト運営日記
この記事は約6分で読めます。

worldPress5.2 PHP8.1以降にエラー発生

katteneプラグイン

アフィリエイトにカッテネを利用しています。
このエラーを見つけた時、まじか!と唖然としました。
今更、他のプラグインにして記事ひとつづづ書き換えるのもめんどくさい。
修正できるものなら修正したい!ということで、数時間検索して調べてみたら何とか修正できました。

カエレバやヨメレバより使い方が簡単なカッテネ作った|クリックもされやすいよ|WebFood
カエレバやヨメレバは、1商品についていろんなASPのアフィリエイトリンクを表示させることができ、素晴らしいアイディアだと思いました。ですが、評判の割に、実際に使ってみると結構難しい。なので、もっと簡単に使えるカッテネというものを作りました。カッテネとは?こんな感じのものです。カエレバやヨメレバのように、一つの商品に

エラーの内容

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

参考したサイト

【カッテネのWordPressエラー吐き出し】原因と対処、代替プラグインの検討 | kuzguz.net
WordPressの更新のタイミングでプラグイン「カッテネ」が「Warning: Undefined array key "main" in...」のエラーを吐き出すようになりました。原因と対処、代替プラグインの検討した流れをまとめます。

まずは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.'">';

たったこれだけで、エラーが解消されました。
ページをリロードして確認してみてくださいね。

コメント

タイトルとURLをコピーしました