comment_form()
は、WordPressの投稿ページでユーザーがコメントを投稿するためのフォームを生成するテンプレートタグです。テーマのcomments.php
ファイル内で使用され、カスタマイズも可能です。
機能の説明
comment_form()
は、コメントの投稿フォームを自動的に生成するテンプレートタグです。このフォームには、名前・メールアドレス・コメント欄・送信ボタンなどが含まれます。引数を使ってフォームの見た目や動作をカスタマイズすることもできます。
シンプルなコード例
<?php comment_form(); ?>
上記のコードを使用するだけで、デフォルトのコメントフォームが投稿ページに表示されます。
使い方の解説
comment_form()
は、主に comments.php
ファイル内で使用されます。
このタグは、現在の投稿ページに関連するコメントフォームを生成し、ユーザーが簡単にコメントを投稿できるようにします。
また、引数に配列を渡すことで、フォームの各要素をカスタマイズすることも可能です。
使用例
<?php
comment_form(array(
'title_reply' => 'コメントを残す',
'title_reply_to' => '%s への返信',
'comment_notes_before' => '<p>コメントを入力してください。</p>',
'label_submit' => 'コメントを投稿'
));
?>
title_reply
:フォームのタイトル(新規コメント用)。title_reply_to
:返信時のタイトル。%s
には返信先のユーザー名が入ります。comment_notes_before
:コメント欄の上に表示される説明文。label_submit
:送信ボタンのラベル。
このように、フォームの各要素を配列で簡単にカスタマイズすることができます。
一緒に使うことが多い関連タグ
comment_form_title()
comment_form_title()
は、コメントフォームのタイトルを表示するテンプレートタグです。comment_form()
と一緒に使うことで、新規コメントと返信時で異なるタイトルを表示できます。
<div class="comment-form">
<?php comment_form_title('コメントを残す', '返信先: %s'); ?>
<?php comment_form(); ?>
</div>
このコードでは、comment_form_title()
でフォームのタイトルを表示し、comment_form()
でフォーム全体を生成しています。
get_comments()
get_comments()
は、特定の投稿やページに紐づくコメントのリストを取得するテンプレートタグです。取得したコメントを表示する際、comment_form()
と併用して新しいコメントも受け付けられます。
<?php
$comments = get_comments(array('post_id' => get_the_ID()));
foreach ($comments as $comment) {
echo '<p>' . $comment->comment_content . '</p>';
}
comment_form();
?>
このコードは、現在の投稿に対するコメントを一覧表示し、その下にコメントフォームを表示します。
追加情報を取得したい場合
comment_form()
に追加の引数を渡すことで、フォームのさらなるカスタマイズが可能です。
<?php
comment_form(array(
'fields' => array(
'author' => '<p><input type="text" name="author" placeholder="名前" required></p>',
'email' => '<p><input type="email" name="email" placeholder="メールアドレス" required></p>',
),
'comment_field' => '<p><textarea name="comment" placeholder="コメント" required></textarea></p>',
'submit_button' => '<button type="submit">送信</button>',
));
?>
fields
:名前やメールアドレスなどの入力フィールドをカスタマイズしています。comment_field
:コメント入力欄のHTMLを上書きします。submit_button
:デフォルトの送信ボタンをカスタムボタンに変更します。
get_comment_author()
で取得できるコメント投稿者情報
<?php echo get_comment_author(); ?>
出力できる情報
- name:コメント投稿者の名前
想定されるトラブル
コメントフォームが表示されない
テーマ内で comment_form()
が正しく呼ばれていない、またはコメントが無効化されている。
解決方法
テーマの comments.php
ファイルに <?php comment_form(); ?>
を追加し、コメント機能が有効か確認してください。
スパムコメントの増加
コメント投稿に制限がかかっていないため、スパムが増える可能性があります。
解決方法
reCAPTCHA を導入するか、コメント承認制を有効にしましょう。
Q&A
まとめ
comment_form()
は、WordPressテーマ内でコメントフォームを簡単に生成するための重要なテンプレートタグです。
フォームの見た目や要素をカスタマイズすることで、ユーザー体験を向上させることができます。また、comment_form_title()
や get_comments()
と組み合わせることで、コメント機能をより豊かに構築できます。
コメント