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引数を外せばいいんじゃないか?って考えたけど、それはマズイ気がした。
試してないけど多分それでも動くよね。
プラグインは凄いありがたいんだけど、色々難しいなぁと。