コメントフォームに「同意チェックボックス」を追加する方法
この記事では、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の投稿ページのコメントフォームに「同意必須チェックボックス」を安全に追加できます。


