杏仁豆腐の家

杏仁豆腐が描いたイラストや、備忘録などを公開しているサイトです。

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

作成日:2019/04/13 15:01 最終更新日:2019/04/13 15:01

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引数を外せばいいんじゃないか?って考えたけど、それはマズイ気がした。
試してないけど多分それでも動くよね。

プラグインは凄いありがたいんだけど、色々難しいなぁと。