2023/07/21 追記
https://webfood.info/make-kattene/
https://plugins.trac.wordpress.org/browser/kattene/tags/1.6/plugin.php

WordPressがサブディレクトリにインストールされている場合も使えるようにした。
mainフラグ周りの「Warning: Undefined array key」や「Notice: Undefined index」が出ないようにした。
mainフラグが1つも設定されていない場合、1番上のURLをメインとして使うようにした。複数にmainフラグが設定されてしまった場合は、そのうちの1番上のものをメインとするようにした。

kattene 1.6で修正されました。


別ブログでkatteneプラグインを使っていて、PHP8.0以上にアップグレードすると、下記エラーが発生。

Warning: Undefind array key "main" in /home/xxxx/wp-content/plugins/kattene/plugin.php on line 44

PHP7まではNoticeのみで出力されていなかった。PHP8以降はWarningに格上げ。
上の表示でもそんな感じ。

プラグイン自体2年ほどアップデートされていないので、pochippに乗り換える人がちらほら。

今更全てのリンクを変更するのは面倒だったので、plugin.phpを編集。


編集前

plugin.php
$main_tmp = array_filter($sites,
  function($site){
    return $site["main"];
  }
);

$main = array_pop($main_tmp);

編集後

plugin.php
  $main_tmp = array_filter($sites,
    function($site){
      return isset($site["main"]) && $site["main"];
    }
  );

  if (!empty($main_tmp)) {
    $main = array_pop($main_tmp);
  }

$sites 配列の要素に "main" キーが存在するかどうかを事前に確認。

$main = array_pop($main_tmp); も一応エラーハンドリングを追加しておく。


PHP8.2.5で動作確認済。

投稿者 mitulu

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です