comment_post フックの使い方|説明・引数・注意点

説明

comment_post は、コメントが保存された直後に実行されるアクションです。

基本構文

do_action( 'comment_post', int $comment_id, int|string $comment_approved, array $commentdata )

引数

  • $comment_id:コメントID
  • $comment_approved:承認状態
  • $commentdata:コメントのデータ

戻り値

値は返しません。

使い方(サンプル)

add_action( 'comment_post', function( $id ) {
	// 通知処理など
} );

注意点

  • 承認状態が spam のコメントでも呼ばれます。

実務での使いどころ

  • コメントが、投稿された直後に、通知や、追加の処理を、行うとき。

よくあるミスと対処

  • $comment_approved の値を、確認していない。1(承認済み)、0(承認待ち)、spam(スパム)の場合がある。
  • 引数の数を、指定していない(既定は1つ)。$comment_approved などを受け取るには、第4引数を指定する。
  • コメントの内容を、エスケープせずに、メールなどへ出力している。

NG例

add_action( 'comment_post', function ( $comment_id ) {
	wp_mail( 'admin@example.com', '新着コメント', get_comment_text( $comment_id ) ); // スパムも通知される
} );

OK例

add_action( 'comment_post', function ( $comment_id, $approved ) {
	if ( 1 === (int) $approved ) {
		// 承認済みのコメントだけを処理
	}
}, 10, 2 );

使い分け早見表

フック・関数 役割
comment_post コメントが、保存された直後
wp_insert_comment() コメントを、直接追加する関数
get_comments() コメントを、取得する関数

関連項目

wp_insert_comment()

公式リファレンス:comment_post | WordPress Developer Resources

コメント

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