2020.04.10

WordPressで記事がレビュー待ちとして送信された時に管理者宛にメール通知する方法

こんにちは、webエンジニアのゾノ( @ozonosho )です。

さて、今回の記事ではWordPressで記事がレビュー待ちとして送信された時に管理者宛にメール通知する方法を紹介したいと思います。

寄稿者権限のユーザーがいるサイトの場合、管理者や編集者はレビュー待ちの記事が投稿された際に通知メールが届くと大変便利なので自分のサイトのために実装してみました。

WordPressで記事がレビュー待ちとして送信された場合に管理者にメール通知する方法

実装は簡単で、下記のコードをfunctions.phpに追加してください。

function mail_for_pending($new_status, $old_status, $post) {
  if($old_status != 'pending' && $new_status == 'pending') {
    $blogname = wp_specialchars_decode(get_option('blogname'), ENT_QUOTES);
    $post_title = wp_specialchars_decode($post->post_title, ENT_QUOTES);    
    $to = get_option('admin_email');
    $subject = "{$blogname}|レビュー待ちの記事が投稿されました。";
    $message = "レビュー待ちの記事が投稿されました。\r\n\r\n";
    $message .= "タイトル:" . $post->post_title . "\r\n";
    $user = get_userdata($post->post_author);
    $message .= "投稿者:" . $user->display_name . "\r\n";
    $message .= "\r\n";
    $message .= "▽編集ページ\r\n";
    $message .= wp_specialchars_decode(get_edit_post_link( $post->ID ), ENT_QUOTES) . "\r\n";
    $r = wp_mail( $to, $subject, $message );
  }
}
add_action('transition_post_status', 'mail_for_pending', 10, 3);

アクションフック「transition_post_status」を使えば記事のステータスが変更されたタイミングで処理を追加することができます。

今回はステータス「pending(レビュー待ち)」を利用して管理者にメールを送信する処理を加えてみましたが、たとえばpendingの記述部分を「publish(公開)」に変更すれば記事公開時にメールを飛ばすこともできます。

とても便利なアクションフックなのでぜひ色々と試してみてください。

おわりに

以上、今回の記事ではWordPressで記事がレビュー待ちとして送信された時に管理者宛にメール通知する方法を紹介させていただきました。

当サイトではWordPressのカスタマイズ依頼を請け負っています。実現したい機能・要望がある方はぜひ下記ページよりご相談ください。

あなたのサイトに理想の機能を実装!WordPressカスタマイズサービス

本サービスはあなたのWordPressサイトに理想の機能を実装するサービスとなります。 どのような機能・要望でも実現可能です! Wo......

→この記事を読む