概要
WordPressでコメントを残したり、承認待ちの場合に通知メールを送信するかどうかは、 WordPress ダッシュボードの 設定>ディスカッションで設定することができます。
コメントを残したり、承認待ち中に電子メール転送に関するフィルタは comment_moderation_recipients と comment_notification_recipients입니다。
フィルタ名が示すように comment_moderation_recipientsは、承認が必要なコメントがある場合には、通知を受信する受信者の電子メールIDのリストをフィルタリングして comment_notification_recipientsはコメントの通知を受信する電子メールアドレスのリストをフィルタリングします。 基本的にコメント通知は文の作成者のみ送信されます。 このフィルタを使用すると、他のユーザーを追加することができます。
コメント通知メールを受信しないように設定する
コメントを残したり、承認待ちのコメントがある場合は一切通知メールが送信されないようにするには、次のように空の配列(array)を使用します。
function se_comment_moderation_recipients( $emails, $comment_id ) { // 승인 대기 중 댓글/새 댓글 알림 비활성화하기 $emails = array(); return $emails; } add_filter( 'comment_moderation_recipients', 'se_comment_moderation_recipients', 11, 2 ); add_filter( 'comment_notification_recipients', 'se_comment_moderation_recipients', 11, 2 ); // Source: sourcexpress.com
管理者だけがコメント通知メール受信
サイト管理者だけにコメント通知メールが送信されるようにするには、次のようなコードを使用します。
function se_comment_moderation_recipients( $emails, $comment_id ) { // 관리자에게만 댓글 알림 이메일 보내기 $emails = array( get_option( 'admin_email' ) ); return $emails; } add_filter( 'comment_moderation_recipients', 'se_comment_moderation_recipients', 11, 2 ); add_filter( 'comment_notification_recipients', 'se_comment_moderation_recipients', 11, 2 );
もしマルチサイトである場合、 get_option 代わりに get_site_optionを使用するようにします。
get_option()は、現在のブログのためのオプションを返します。 単一サイトのインストールでは、現在のブログが唯一のブログです。 したがって get_option()は、現在のブログのためのオプションを返します。
get_site_option()は、ネットワークレベルでのオプションを検索するときに使用されます。 そのため、ネットワークの任意のサイトで同じオプションを得ることができます。 もし、この関数を単一のインストールで使用すると、 get_option()と同じ値を返します。 get_site_option()は get_option()ツリーないフィルタフックをトリガーするための値が変更されることがあります。
参考までに $ wpdb-> options テーブルは、特定のブログ用ですが、ネットワーク全体のオプションは、 $ wpdb-> sitemeta テーブルに保存されます(参照).
記事投稿者のみコメント通知メール送信
コメントは違ったり、コメントの承認が必要な場合記事の作成者に通知メールを送信するには、次のようなコードを使用します。
function se_comment_moderation_recipients( $emails, $comment_id ) { $comment = get_comment( $comment_id ); $post = get_post( $comment->comment_post_ID ); $user = get_user_by( 'id', $post->post_author ); // 글 작성자가 수정할 권한이 있는 경우 글 작성자만을 반환합니다. if ( user_can( $user->ID, 'edit_published_posts' ) && ! empty( $user->user_email ) ) { $emails = array( $user->user_email ); } return $emails; } add_filter( 'comment_moderation_recipients', 'se_comment_moderation_recipients', 11, 2 ); add_filter( 'comment_notification_recipients', 'se_comment_moderation_recipients', 11, 2 );
任意のメールを追加する
特定の電子メールアドレスを指定する場合は、次のように使用します。
function se_comment_moderation_recipients( $emails, $comment_id ) { // 임의의 이메일 추가 $emails = array( '[email protected]' ); return $emails; } add_filter( 'comment_moderation_recipients', 'se_comment_moderation_recipients', 11, 2 ); add_filter( 'comment_notification_recipients', 'se_comment_moderation_recipients', 11, 2 );
上記のコードは、使用している WordPress テーマの関数ファイル(funcitons.php)に追加するようにします。 なるべく 子テーマ(チャイルドテーマ)を作って子テーマの関数ファイルに追加することをお勧めします。 ユーザーコードを関数ファイルに追加する方法は、 ここを参考にしてみてください。
WordPress カスタムメールというプラグインを使用してみることができます。 このプラグインは、新しい登録、電子メール、パスワードのリセット要求、電子メール、パスワード変更時のユーザーの通知、パスワード変更時の管理者の通知、承認待ちの新しいコメントの通知メール、新しいコメントが走るとき、管理者に送信される電子メールなどをカスタマイズすることができメール設定とSTMPがサポートされます。 カスタムメール プラグインは、販売数があまりありませんが、ユーザーの評価は4.50(5.00満点)で、比較的まともな方です。
WordPressから送信される電子メール(件名と本文)をカスタマイズしたい場合
コメントを残す