【WordPress】新しい記事を公開した際に、指定メールへの通知方法
こんにちは!Kです!
最近WordPressの案件が増えてきてプラグインだけではうまく実現できない機能があったりして苦労したので今後のために書いておきたいと思います。
書きたいことはたくさんあるのですが、とりあえず需要がありそうなものから書いていこうかと思います。
ワードプレスをインストールしてログインし、テーマを決めたら、後はweb検索にヒットさせるように記事を投稿するだけ。
しかし、記事作成や新規投稿を管理するにはどうすればいいのでしょうか?
今回の記事では、投稿者が投稿から最新記事作成後、配信した際に、指定されたメールアドレスに確認のメールが届く設定方法をご紹介します。
反対に自動送信される設定を解除する方法もご紹介しています。
従業員が多い企業や部署に多い「不正アクセス問題」についてもご紹介しています。
【WordPress】海外からの不正アクセスを防ぐ「IP Geo Block」の導入方法
記事投稿とメール通知の必要性
社外向けの記事投稿時には、社内メンバーも新しい記事が公開されたことを通知すると、メリットはいろいろあります。。
- 情報の間違いを早期発見できる(二重チェック)
- FacebookやTwitterへの自動投稿の確認作業
- 社内Slackなどでメンバーに通知する作業時間の削減(業務の効率化)
などさまざまなメリットがあります。
記事公開時にメアドへ通知する方法
今回は、WordPressで新しい記事を投稿した際に、指定のメールアドレスにメールで通知する方法です。
これだけならプラグインはあると思いますが、メールで通知するにあたって、様々な条件や複雑な仕様が入ったりとプラグインだけでは実現できないこともあります。
なので、今回はカスタマイズ前の基本となるコードを書いておきます。
functions.phpに書くだけで簡単に実現できるので、ぜひ参考にしてみてください。
function.phpの場所がわからない方向けにも探し方をご紹介しています。
【WordPress】functions.php ファイルの場所は?
その後のカスタマイズはいつか記事にできたらしますね。
コードサンプル【使い方付】
add_action( 'transition_post_status', function( $new_status, $old_status, $post ) {
if ( 'publish' == $new_status && 'publish' != $old_status && 'post' == $post->post_type ) {
// 宛先
$to = 'hogehoge@gmail.com';
// 送信メールの件名
$subject = "[サイト名]新しい記事が公開されました";
// 送信メールの本文
$message = "タイトル:" . $post->post_title . "\n";
$message .= "URL:" . get_permalink($post->ID);
// From、Reply-To
// WordPressの一般設定で設定しているメールアドレスをFromにする場合は空配列
$headers = [];
// 添付ファイルのファイルパス
$attachments = [];
wp_mail($to, $subject, $message, $headers, $attachments);
}
}, 10, 3 );
コピペして宛先のメールアドレスを変更すれば、記事を公開した瞬間にメールが送信されます。簡単ですね。笑
補足事項
ちなみに、メール本文の「$post->post_title」は公開記事のタイトルを取得していて、「get_permalink($post->ID)」は公開記事のURLを取得しています。
他にもいろいろな情報を取得できるので気になる方は調べてみてください。
WordPressの悩み相談
WordPressは膨大な数のプラグインが存在します。なので、基本的には欲しいと思った機能は大体がプラグインで実現できたりします。
ただ、要件によってはプラグインだけでは実現できないこともあるので、phpの基礎的な部分だけでも知っていると柔軟に対応できていいかもしれません。
今回のようにコードを書かなくても、メール通知系でいいプラグインがあれば一番楽なんですけどね...笑。
というわけで今後もどんどん情報を発信していきますのでぜひご覧ください!!
よくある質問についても記事で解決法をご紹介しています。