WordPressでコメントが投稿された時のコールバック処理を実現

いくつかの方法がありますが、ここでは、WordPressのアクションフック「comment_post」を使用する方法を紹介します。これは、コメントが投稿されたときに実行されるコールバック関数を登録することができます。

以下の例では、コメントが投稿されたときに、管理者にメールが送信されるようになっています。このコードをWordPressのfunctions.phpファイルに追加することで、コメント投稿時のカスタム処理を実現することができます。

function my_comment_callback($comment_id, $approved) {
    if($approved === '1') {
        $comment = get_comment($comment_id);
        $post = get_post($comment->comment_post_ID);
        $author_email = get_the_author_meta('user_email', $post->post_author);
        $subject = 'New comment on ['.$post->post_title.']';
        $message = 'A new comment has been posted on ['.$post->post_title.'] by '.$comment->comment_author.' ('.$comment->comment_author_email.'). 

        Comment text:
        '.$comment->comment_content;
        
        wp_mail($author_email, $subject, $message);
    }   
}
add_action('comment_post', 'my_comment_callback', 10, 2);

このコードでは、コールバック関数「my_comment_callback」が「comment_post」アクションフックに登録されています。この関数は、2つのパラメータ($comment_id、$approved)を受け取ります。$comment_idは、コメントのIDを示し、$approvedは承認されたコメントかどうかを示します。$approvedが「1」の場合は承認済みのコメントであるため、メールを送信する処理が実行されます。

get_comment()関数とget_post()関数を使用して、コールバック関数内でコメントと投稿の詳細を取得しています。

最後に、wp_mail()関数を使用して、投稿者にメールが送信されます。この関数は、送信先のメールアドレス、件名、本文などを引数に受け取ります。

この例では、コメント投稿時にメールを送信する処理を実装しましたが、アプリケーションの要件に応じて、投稿の更新や削除に対するコールバック処理を実現することもできます。

コメント

タイトルとURLをコピーしました