MENU

comment_form()

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

コメントフォームに reCAPTCHA を追加する方法はありますか?

はい、comment_form() 内にカスタム HTML を追加するか、reCAPTCHA プラグインを使用することで実現可能です。

comment_form() の送信ボタンのデザインを変更できますか?

はい、submit_button 引数を使用して、カスタムの HTML ボタンを指定できます。

コメントのフィールドを増やせますか?

fields 引数を使用することで、名前やメール以外の独自フィールドを追加することが可能です。

まとめ

comment_form() は、WordPressテーマ内でコメントフォームを簡単に生成するための重要なテンプレートタグです。

フォームの見た目や要素をカスタマイズすることで、ユーザー体験を向上させることができます。また、comment_form_title()get_comments() と組み合わせることで、コメント機能をより豊かに構築できます。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次