bbPressでメール通知する方法(トピック作成時、リプライ投稿時)
フォーラム機能実装プラグイン「bbPress」でトピック作成時及びリプライ投稿時に管理者(や他のアドレス)にメール通知する機能を実装する方法を紹介します。
まえがき
この前、ある案件でサイトにフォーラム機能を実装することになり始めて「bbPress」というWordPressで簡単にフォーラム機能を実装できるプラグインを使用しました。
操作が簡単で非常に使いやすい印象を持ったのですが、デフォルトのままじゃ叶えられない要望が1点ありました。
「一般ユーザーのトピック作成時、及びリプライ投稿時に管理者にメール通知したい」
あれやこれや試した末、無事に希望通りの機能を実装できたのでその覚書です。
結論から書きます。
「subscribe2」プラグインでトピック作成時、リプライ投稿時のメール通知機能を実装
「subscribe2」はもともとメルマガ発行につかわれるようなプラグインなのですが、更新通知機能も持っていて、今回はその機能に頼ります。
「bbPress」を有効化すると、下記のようにカスタム投稿タイプが追加されます。
このそれぞれのカスタム投稿タイプがフォーラムやトピック、リプライに対応していて一般ユーザーが何か投稿すれば、ここの記事が増えていきます。
考え方としてはカスタム投稿タイプの記事が追加された時にメール通知してくれるという挙動が欲しいわけですね。
では実装していきます。
「subscribe2」はインストール・有効化しておいてください。(やり方は割愛します)
送信したいメールアドレスを登録
送信したいメールアドレスを登録します。ちなみに管理者には自動的にメールが送られるようになっているので管理者メアドに送れればいいということであれば、この項は飛ばしてください。
管理画面の「Subscribe2」から「Subscribers」をクリックして、表示されるフィールドに通知を送りたいメールアドレスを一行ずつ(またはカンマ区切りで)入力しましょう。
入力できたら「Subscribe」ボタンをクリックして登録します。
これで下準備は完了です。
通知したいカスタム投稿タイプを指定する
デフォルトだと「投稿」か「ページ」しかメール通知してくれないので「bbPress」で追加したフォーラム・トピック・リプライの3つの投稿タイプでメール通知機能が有効になるように設定します。
テーマの中のfunctions.phpに以下のコードを追加してください。
//掲示板更新されたらメール通知 function s2_add_post_types($s2_post_types){ if(is_array($s2_post_types)) array_push($s2_post_types,'forum','topic','reply'); return $s2_post_types; } add_filter('s2_post_types','s2_add_post_types');
ハイライトしている4行目に「’forum’,’topic’,’reply’」と「bbPress」で追加された投稿タイプを指定しています。
これで設定は完了です。
テストしてみてメール通知がちゃんと機能するか確認してみてください。
まとめ
基本的に動作は満足なのですが1つ欲を言えば、送信するメールの内容に「どのトピックに対する返信なのか」や「トピックページへのリンク」を入れれたら最高なんですが、もともと「bbPress」用のプラグインじゃないのでしようがないですね笑
実は、「bbPress Notifications」プラグインという「bbPress」専用のメール通知プラグインがあるんですが、このプラグインはトピック作成時にしかメール通知してくれないので、今回は利用できませんでした。
その代わり、このプラグインだと「どのトピックに対する返信なのか」や「トピックページへのリンク」等がメールに入ってますのでより使いやすいと思います。
適宜選択してください。