WordPressで新しい記事を投稿した際に、指定のメールアドレス宛にメール通知する方法です。
なぜ必要か?
社外の方に向けては記事投稿時にFacebookやTwitterへの自動投稿の連携を行っていますが、社内メンバーはホームページやSNSを監視していないと更新に気づきません。
記事は社外の方に向けて書いているため通常はそれで問題ありませんが、もし社内メンバーにも新しい記事を知らせたい場合は、普段業務で使用しているメールやチャットワーク、Slackなどのサービスに通知させることで新しい記事を知らせることが出来ます。
(新規記事投稿時のチャットワークへの通知はPost to Chatworkというプラグインが存在するようです)
指定のメールアドレス宛にメール通知する方法
functions.phpに以下をコピペしてご使用ください。
送信先のメールアドレス、件名、本文はご自由にカスタマイズしてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | add_action('transition_post_status', function($new_status, $old_status, $post) { // 新規投稿時且つ、投稿タイプがpostの場合(カスタム投稿でない通常投稿の場合、投稿タイプはpost) if ($new_status == 'publish' && $old_status != 'publish' && $post->post_type == 'post') { // 送信先のメールアドレス(複数指定可) // 件名 $subject = '新しい記事が公開されました'; // 本文 $message = $post->post_title . "\n"; $message .= get_permalink($post->ID); // FromやReply-Toを記述。WordPressの一般設定で設定しているメールアドレスをFromにする場合は空配列。 $headers = []; // 添付ファイルがあればファイルパスを記述 $attachments = []; wp_mail($to, $subject, $message, $headers, $attachments); } }, 10, 3); |
弊社で実際に使用している処理内容
以下は、弊社で実際に使用している処理内容です。(メールアドレスは一部ぼかしています)
カテゴリーがブログ(またはブログの子カテゴリー)の記事の場合、新しい記事が投稿された際にメール通知されるようにしています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | add_action('transition_post_status', function($new_status, $old_status, $post) { // 新規投稿時且つ、投稿タイプがpostの場合(カスタム投稿でない通常投稿の場合、投稿タイプはpost) if ($new_status == 'publish' && $old_status != 'publish' && $post->post_type == 'post') { $cats = get_the_category($post->ID); // カテゴリー情報を取得 $parent_cat_id = $cats[0]->parent; // 親カテゴリのIDを取得 $cat_id = ($parent_cat_id == 0) ? $cat_id = $cats[0]->cat_ID : $parent_cat_id; // 親または現カテゴリーが「ブログ」の場合 if ($cat_id == 35) { // 送信先のメールアドレス(複数指定可) // 件名 $subject = '[HP][ブログ] 新しい記事が公開されました'; // 本文 $message = $post->post_title . "\n"; $message .= get_permalink($post->ID); // FromやReply-Toを記述。WordPressの一般設定で設定しているメールアドレスをFromにする場合は空配列。 $headers = []; // 添付ファイルがあればファイルパスを記述 $attachments = []; wp_mail($to, $subject, $message, $headers, $attachments); } } }, 10, 3); |
以下は、カテゴリーがブログ(またはブログの子カテゴリー)の記事が投稿された際にメール通知されたメール内容のキャプチャ画像です。
最後に
一人で運営されている方には不要かもしれませんが、執筆者が複数いたり共有も兼ねている場合には、内部へ向けての通知が必要な場合もあるかと思います。
メール通知ではなくチャットワークへの通知でも良かったのですが、そこまで優先度が高い通知でもないため、今回はメール通知のご紹介にしました。
記事内でご紹介したチャットワークへ通知するプラグインはカテゴリーが指定できないようですので、もしチャットワーク通知に切り替える場合はプラグインを作成するか今回の用に記事でご紹介させて頂けばと思います。
【動確環境】
WordPress:ver4.9.8
コメントを残す