コメントフォームの表示のカスタマイズ
comments.phpの中でcomment_form();を使用してコメントフォームを出力できます。
パラメータを入れる事で表示内容を色々変更できます。
デフォルトのコード
<?php comment_form(); ?>
でフォルトの↓下記のコードが出力されます。
<div id="respond"> <h3 id="reply-title">コメントをどうぞ <small><a rel="nofollow" id="cancel-comment-reply-link" href="/wordpress/?p=1816#respond" style="display:none;">コメントをキャンセル</a></small></h3> <form action="(パスが入ります)/wp-comments-post.php" method="post" id="commentform"> <p class="comment-notes">メールアドレスが公開されることはありません。 <span class="required">*</span> が付いている欄は必須項目です</p> <p class="comment-form-author"> <label for="author">名前</label> <span class="required">*</span> <input id="author" name="author" type="text" value="" size="30" aria-required="true"></p> <p class="comment-form-email"> <label for="email">メールアドレス</label> <span class="required">*</span> <input id="email" name="email" type="text" value="" size="30" aria-required="true"></p> <p class="comment-form-url"> <label for="url">ウェブサイト</label> <input id="url" name="url" type="text" value="" size="30"></p> <p class="comment-form-comment"> <label for="comment">コメント</label> <textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p> <p class="form-allowed-tags">次の<abbr title="HyperText Markup Language">HTML</abbr> タグと属性が使えます: <code><a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> </code></p> <p class="form-submit"> <input name="submit" type="submit" id="submit" value="コメントを送信"> <input type="hidden" name="comment_post_ID" value="1816" id="comment_post_ID"> <input type="hidden" name="comment_parent" id="comment_parent" value="0"> </p> </form> </div><!-- #respond -->
表示を変更する
下記のパラメータ、$argsに値を指定する事で、表示内容を変更できます。
<?php comment_form( $args(array(), $post_id ); ?>
$post_idは記事idが入るので、表示をカスタマイズするには$argsの部分に値を入れます。
参照:Function Reference/comment form
WordPress 3.0 Theme Tip: The Comment Form
■$argsに指定できるもの
‘fields’
入力フィールド:’作者’、’メール’、’URL’の部分
(array) オプション 初期値: apply_filters( ‘comment_form_default_fields’, $fields )
‘comment_field’
テキストエリアとコメント本体のラベルの部分
(文字列) オプション 初期値:
‘must_log_in’
ログインが必須の時の表示
(文字列) オプション 初期値:コメントを投稿するにはログインして下さいの表示
‘logged_in_as’
ログインしているユーザー名を表示する
(文字列) オプション 初期値:”〇〇してログインしています”の表示
‘comment_notes_before’
コメントフォームの前に表示を出す
(文字列) オプション 初期値:メールアドレスは表示されませんのメッセージ
‘comment_notes_after’
コメントフォームの後に表示を出す
(文字列) オプション 初期値:使用可能タグリストのを表示
‘id_form’
フォームタグのidを変更
(文字列) オプション 初期値: ‘commentform’
‘id_submit’
サブミットボタンのidを変更
(文字列) オプション 初期値: ‘submit’
‘title_reply’
タイトルを変更
(文字列) オプション 初期値: __( ‘Leave a Reply’ )
‘title_reply_to’
返信のタイトルを変更
(文字列) オプション 初期値: __( ‘Leave a Reply to %s’ )
‘cancel_reply_link’
コメントをキャンセルする時の表示
(文字列) オプション 初期値: __( ‘Cancel reply’ )
‘label_submit’
コメントを投稿する時の表示
(文字列) オプション 初期値: __( ‘Post Comment’ )
使用例
•例えば、最初のタイトル部分”コメントをどうぞ”と”アドレスは非公開です”を違う言葉にするには下記のように指定します。
<?php comment_form(array( 'title_reply'=>'コメントお待ちしています。', 'comment_notes_before'=>'<p class="comment-notes">' . __( 'アドレスは非公開です。お気軽にコメント下さい。' ) . ( $req ? $required_text : '' ) . '</p>', )); ?>
•’fields’の入力フィールド(デフォルトでは名前、メールアドレス、URLの3項目の入力フォーム)に新しく文字や項目を増やすにはfunction.phpに下記の様に記入すれば、項目や文字を追加できます。
function my_fields($fields) { $fields['new'] = '<p>Some new input field here</p>'; return $fields; } add_filter('comment_form_default_fields','my_fields');
ただ、”表示”だけでここで入力のフォームを下記のように追加しても、実際に入力した内容がダッシュボードに送られる訳ではないので、意味がない気もします。結局は表示においてのカスタマイズですね。
function my_fields($fields) { $fields['new'] = '<p class="comment-form-new"><label for="new">' . __( 'new' ) . '</label>' . '<input id="new" name="new" type="text" value="' . esc_attr( $commenter['comment_author_new'] ) . '" size="30" /></p>'; return $fields; } add_filter('comment_form_default_fields','my_fields');
fdfはしとは
あああ
初めまして。
いつも有益な情報ありがとうございます!
「コメントへの項目追加」に関して1つお聞きしたいです。
テキストではなく、「チェックボックス」と「セレクトボックス」を追加する方法をご存知でしょうか?
もし知っておられたら教えていただけますと幸いです。
宜しくお願いいたします!
山田健二 さま
「$fields[‘new’] =」の箇所へチェックボックス/セレクトボックスのタグを入れれば表示に、追加はされると思いますが、コメントとして受け取る場合データベースへの格納が必要な気がしますがどうなんでしょうか…。
香川県ルー餃子のフジフーヅはバイトにパワハラの末指切断の重傷を負わせた犯罪企業
香川県ルーちゃん餃子でおなじみのフジフーヅはバイトにパワハラで指切断の重傷を負わせた糞ブラック企業
テストさせてください