WordPress コメント通知メールを変更する

Last Updated: 2016 年 08 月 02 日 댓글

wordpress comments notification

概要

WordPressでコメントを残したり、承認待ちの場合に通知メールを送信するかどうかは、 WordPress ダッシュボードの 設定>ディスカッションで設定することができます。

コメントを残したり、承認待ち中に電子メール転送に関するフィルタは comment_moderation_recipientscomment_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から送信される電子メール(件名と本文)をカスタマイズしたい場合 WordPress カスタムメールというプラグインを使用してみることができます。 このプラグインは、新しい登録、電子メール、パスワードのリセット要求、電子メール、パスワード変更時のユーザーの通知、パスワード変更時の管理者の通知、承認待ちの新しいコメントの通知メール、新しいコメントが走るとき、管理者に送信される電子メールなどをカスタマイズすることができメール設定とSTMPがサポートされます。 カスタムメール プラグインは、販売数があまりありませんが、ユーザーの評価は4.50(5.00満点)で、比較的まともな方です。


コメントを残す

コメント