【WordPress】投稿へのコメント通知メールの内容を変更する方法
こんにちは、webエンジニアのゾノ( @ozonosho )です。
今回の記事ではWordPressで投稿へのコメント通知メールの内容を変更する方法を紹介したいと思います。
WordPressは自分の投稿にコメントがついた際に通知メールを受け取ることができますが、デフォルトのメールだと明らかに運営者が受け取る前提の内容が届きます。
僕の運営する『ココトモ』のように登録メンバーが自由にブログを書けるサイトの場合、デフォルトのメールが届いちゃうとメンバーが混乱してしまうので、内容を適切にカスタマイズする必要があるわけです。
コメント通知メールの内容を変更する方法
functions.phpに下記のようなコードを追加することでメールの内容を変更できます。
//コメント投稿時に通知メール送信
function send_mail_comment_post($comment_ID) {
$comment_data = get_comment($comment_ID);
$post_id = $comment_data->comment_post_ID;
$post = get_post($post_id);
$author = ($post) ? get_userdata($post->post_author) : null;
if(!$author) return;
mb_language("ja");
mb_internal_encoding("UTF-8");
//件名
$subject = 'あなたのブログにコメントが届きました';
//本文
$body = '下記ブログに新しいコメントが届きました。'."\n\n";
$body .= '『'.get_the_title($post_id).'』'."\n";
$body .= get_the_permalink($post_id)."\n\n";
$body .= '本メールは送信専用のため、返信できません。'."\n";
$body .= 'ご不明な点がございましたらHPよりお問い合わせください。'."\n\n";
//メール送信
wp_mail($author->user_email, $subject, $body);
}
add_action('comment_post', 'send_mail_comment_post', 10, 1);
会員制サイトでコメント投稿者の名前もメールに表示したい場合は、下記のようなコードを書くことで実装できます。
function send_mail_comment_post($comment_ID) {
$comment_data = get_comment($comment_ID);
$user_id = $comment_data->user_id;
$user = get_userdata($user_id);
$post_id = $comment_data->comment_post_ID;
$post = get_post($post_id);
$author = ($post) ? get_userdata($post->post_author) : null;
if(!$author) return;
mb_language("ja");
mb_internal_encoding("UTF-8");
//件名
$subject = 'あなたのブログにコメントが届きました';
//本文
$body = '';
if($user) {
$body .= '「'.$user->display_name.'」さんより';
}
$body .= '下記ブログに新しいコメントが届きました。'."\n\n";
$body .= '『'.get_the_title($post_id).'』'."\n";
$body .= get_the_permalink($post_id)."\n\n";
$body .= '本メールは送信専用のため、返信できません。'."\n";
$body .= 'ご不明な点がございましたらHPよりお問い合わせください。'."\n\n";
//メール送信
wp_mail($author->user_email, $subject, $body);
}
add_action('comment_post', 'send_mail_comment_post', 10, 1);
おわりに
以上、今回の記事でWordPressで投稿へのコメント通知メールの内容を変更する方法 を紹介させていただきました。
当サイトではWordPressのカスタマイズ依頼を請け負っています。実現したい機能・要望がある方はぜひ下記ページよりご相談ください。