wp_handle_comment_submission()


関数 WordPresswp_handle_comment_submission()は、送信されたコメントを処理するために使用されます。この関数はコメントフォームのデータを検証し、適切なアクションを実行します。

構文

wp_handle_comment_submission( array $comment_data );
  • $comment_data (array) — コメントデータを含む配列。

例 1: 基本的なコメント処理

送信されたコメントを処理します。

<?php
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
    wp_handle_comment_submission( $_POST );
}
?>

例 2: カスタム検証の追加

コメントデータを処理する前にカスタム検証を行います。

<?php
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
    $comment_data = $_POST;
    if ( strlen( $comment_data['comment_content'] ) < 10 ) {
        die( 'コメントは10文字以上必要です。' );
    }
    wp_handle_comment_submission( $comment_data );
}
?>

例 3: コメントデータの前処理

送信されたデータを変更してから処理します。

<?php
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
    $comment_data = $_POST;
    $comment_data['comment_content'] = sanitize_text_field( $comment_data['comment_content'] );
    wp_handle_comment_submission( $comment_data );
}
?>

例 4: エラーメッセージのカスタマイズ

エラーが発生した場合のメッセージを変更します。

<?php
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
    $result = wp_handle_comment_submission( $_POST );
    if ( is_wp_error( $result ) ) {
        die( 'コメントの送信に失敗しました。' );
    }
}
?>

例 5: コメント送信後のリダイレクト

コメントが送信された後に特定のページにリダイレクトします。

<?php
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) {
    $result = wp_handle_comment_submission( $_POST );
    if ( ! is_wp_error( $result ) ) {
        wp_redirect( home_url( '/thanks/' ) );
        exit;
    }
}
?>

注意点

  • $comment_data配列には必須のキーが含まれている必要があります(例: comment_post_ID, comment_content)。
  • 重複チェックを行う場合、$avoid_duplicatetrueに設定してください。
  • エラーが発生する可能性があるため、常にis_wp_error()を使用して結果を検証してください。

関連機能: