コメントフォームに「同意チェックボックス」を追加する方法

この記事では、WordPressの投稿ページにだけ「コメント投稿時の同意チェックボックス」を追加する方法を紹介します。
お知らせ・固定ページ・カテゴリー・アーカイブ・関連記事には影響せず、投稿記事(single.php)でのみ動作します。

1 実装のポイント

  • functions.php にコードを追加して、コメントフォームにチェックボックスを追加
  • 投稿ページのみで有効にするため、is_single() 条件を使用
  • チェックが入っていない場合、送信できないようにバリデーションを追加

2 functions.php にコードを追加

以下のコードを functions.php に追加します。
チェックが入っていない場合はエラーメッセージを表示し、投稿をブロックします。

注意: 必ず子テーマの functions.php に追加してください。親テーマに直接追加するとアップデートで消える可能性があります。


//-------------------------------------------
// 投稿ページ限定:コメントフォームに「同意チェックボックス」を追加
//-------------------------------------------
function add_comment_agreement_checkbox() {
    if ( ! is_single() ) return; // 投稿ページ以外では非表示

    echo '<p class="comment-agreement">
        <label>
            <input type="checkbox" name="comment_agree" value="1" required>
            コメントを投稿することで、当サイトの<a href="/privacy-policy" target="_blank">プライバシーポリシー</a>に同意します。
        </label>
    </p>';
}
add_action( 'comment_form_after_fields', 'add_comment_agreement_checkbox' );
add_action( 'comment_form_logged_in_after', 'add_comment_agreement_checkbox' );

//-------------------------------------------
// チェックが入っていない場合にエラーを返す
//-------------------------------------------
function verify_comment_agreement( $commentdata ) {
    if ( is_single() && empty( $_POST['comment_agree'] ) ) {
        wp_die( 'コメントを投稿するには、プライバシーポリシーへの同意が必要です。' );
    }
    return $commentdata;
}
add_filter( 'preprocess_comment', 'verify_comment_agreement' );
補足:

  • このコードは投稿ページ (single.php) のコメントフォームにのみ反映されます。
  • /privacy-policy の部分は、あなたのサイトのプライバシーポリシーURLに置き換えてください。
  • 固定ページやお知らせ(カスタム投稿)などには影響しません。

3 汎用CSS

チェックボックスの見た目を整えるため、以下をテーマのCSSに追加します。


/* ---------------------------------
 * コメント同意チェックボックスの装飾
 * --------------------------------- */

.comment-agreement {
  margin: 10px 0;
  font-size: 14px;
  color: #333;
}

.comment-agreement input[type="checkbox"] {
  margin-right: 6px;
  transform: scale(1.2); /* チェックを少し大きくする */
}

.comment-agreement a {
  color: #0073aa;
  text-decoration: underline;
}

.comment-agreement a:hover {
  color: #005177;
}

4 完成イメージ

同意チェックボックス

5 代用プラグイン

プラグインで実現したい場合は、次のようなものも利用できます。

  • WP Comment Policy Checkbox — コメント送信時に同意を求めるプラグイン。
  • Comment Form Checkbox — カスタム文言を自由に設定可能。

6 まとめ

  • 投稿ページのみコメントフォームに「同意チェックボックス」を追加
  • is_single() で他ページへの影響を防止
  • プライバシーポリシーURLを適宜変更
  • 簡易CSSでデザイン調整も可能

この方法で、WordPressの投稿ページのコメントフォームに「同意必須チェックボックス」を安全に追加できます。