コメントフォームの表示のカスタマイズ

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>&lt;a href="" title=""&gt; &lt;abbr title=""&gt; &lt;acronym title=""&gt; &lt;b&gt; &lt;blockquote cite=""&gt; &lt;cite&gt; &lt;code&gt; &lt;del datetime=""&gt; &lt;em&gt; &lt;i&gt; &lt;q cite=""&gt; &lt;strike&gt; &lt;strong&gt; </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');

Related Article

8 Comments & Tracbacks

  • しはは 2013-02-03 6:12 PM

    fdfはしとは

    Reply

  • ゆり 2013-09-30 6:31 AM

    あああ

    Reply

  • 山田健二 2015-02-13 3:05 PM

    初めまして。
    いつも有益な情報ありがとうございます!

    「コメントへの項目追加」に関して1つお聞きしたいです。

    テキストではなく、「チェックボックス」と「セレクトボックス」を追加する方法をご存知でしょうか?
    もし知っておられたら教えていただけますと幸いです。

    宜しくお願いいたします!

    Reply

    • saori 2015-02-17 6:18 PM

      山田健二 さま

      「$fields[‘new’] =」の箇所へチェックボックス/セレクトボックスのタグを入れれば表示に、追加はされると思いますが、コメントとして受け取る場合データベースへの格納が必要な気がしますがどうなんでしょうか…。

      Reply

  • 名無しのリーク 2016-07-18 8:01 AM

    香川県ルー餃子のフジフーヅはバイトにパワハラの末指切断の重傷を負わせた犯罪企業

    Reply

  • 名無しのリーク 2016-07-23 1:16 PM

    香川県ルーちゃん餃子でおなじみのフジフーヅはバイトにパワハラで指切断の重傷を負わせた糞ブラック企業

    Reply

Leave a Comment

Emailは公開されません。*は必須項目です。


*


Categorys

Tags

CSS3 ダッシュボード ヘッダー jQueryプラグイン スライドショー トラブル コードサンプル コンテンツ Facebook 素材 php 引っ越し お知らせ JavaScript カテゴリー Shareボタン CSS IE 投稿タイプ レスポンシブ Photoshop seo Macアプリ サイドバー タクソノミー HTML5 WPセキュリティ Git カスタムメニュー ナビゲーション PHPリファレンス SVG API query_posts RSS WP使い方 iTunes データベース コメント function 条件分岐 get_posts() スマートフォン Sass/Compass moreタグ