Subscribe2 除外カテゴリに通知が送信されるので修正

Wordpressのプラグイン「Subscribe2」で除外カテゴリに設定しているのに、Subscribe登録者に通知が送信されてしまうので、一時凌ぎ的な修正。 WPユーザーへの通知は期待通りに動いていた、と思う(試しすぎて記憶が曖昧) 通知を止めるとかなんとかはググると出てきたけど、自分のしたい事は出てこなかったので、一応備忘録。 ## 使用バージョン Wordpress 5.1.1 Subscribe2 10.27 ## 修正方法 まず、Wordpressの新エディタ(ブロックエディタ)では、そもそも思うように動作していなかったので、プラグイン「Classic Editor」をインストールし有効化。 「wp-content/plubins/subscribe2/classes/class-s2-core.php」を開き、333行目付近を下記のように修正。 ~~~ foreach ( explode( ',', $this->subscribe2_options['exclude'] ) as $cat ) { $cat = intval($cat); // <-追加 if ( in_array( $cat, $post_cats, true ) ) { $check = true; } } ~~~ 変更内容は、intval()で文字列を数値に変換するようにしただけ。 ## 注意 とりあえず、これの案件があって対応しようと、一時凌ぎ的に修正したものなので、 同様にお困りになっている方で、上記の修正を行う場合は、期待通りの動きをするか確認してから本番にアップしてください。 責任は負えませんので。 あとは、プラグインへの直接の修正なので、プラグインの更新を適用すると上書きされてしまうので注意。 まあ更新で、これが解消されれば、それが一番良いんですが……自分の環境が悪いだけの可能性もあるし、どうなんだろう? ## 気になる事 PHPはほぼ触ったこと無いんだが、修正にあたり`in_array()`を調べて疑問。 `in_array()`の第3引数にtrueを入れると型の比較もするようだが、今回の修正を入れないと上手くいかなかったのは、どこに原因があるんだろう。 PHPのバージョン? wordpressのバージョン? はたまた自分の環境? 修正する時、どうせ数値しか来ないだろうから、第3引数を外せばいいんじゃないか?って考えたけど、それはマズイ気がした。 試してないけど多分それでも動くよね。 プラグインは凄いありがたいんだけど、色々難しいなぁと。