WordPress のコメントフォームを functions.php を使ってカスタマイズする
この記事は投稿されてから1年以上経っています。内容が古くなっているかもしれませんので、ご注意ください。
WordPress のコメントフォームは、comments.php から以下のように呼び出されています。
<?php comment_form(); ?>
呼び出されている部分はコアファイルに記載されているらしいので、さすがに functions.php を編集してカスタマイズするのが良いかと思います。
このブログも何箇所かカスタマイズしたのでメモしておきます。
不要なフィールドを削除する
URL の入力フィールドは不要かと思いましたんで、削除します。
add_filter('comment_form_default_fields', 'remove_comment_url_fields');
function remove_comment_url_fields($fields) {
unset($fields['url']);
return $fields;
}
テキスト入力フィールドのサイズ(HTML)を調整する
「名前」や「メールアドレス」などのテキストフィールドには、マークアップ上に size=”30″ と記載してあり、レスポンシブウェブデザインを採用している場合、スマートフォンの Portrait 表示の場合にテキストフィールドが想定している横幅よりも大きくなり残念な感じになったりますので、%表示とかにしておこうと思います。
add_filter( 'comment_form_default_fields', 'custom_comment_form_fields');
function custom_comment_form_fields($fields){
$fields = array(
'author' =>
'<p class="comment-form-author"><label for="author">' . __( '名前(ニックネーム)', 'domainreference' ) . '</label> ' .
( $req ? '<span class="required">*</span>' : '' ) .
'<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) .
'" style="width: 70%;"' . $aria_req . ' /></p>',
'email' =>
'<p class="comment-form-email"><label for="email">' . __( 'メールアドレス', 'domainreference' ) . '</label> ' .
( $req ? '<span class="required">*</span>' : '' ) .
'<input id="email" name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) .
'" style="width: 70%;"' . $aria_req . ' /></p>',
);
return $fields;
}
なんとなく、70% にしてみました。
「コメントを残す」とか、コメントフォーム周りのテキストを変更する
コメントフォーム周りのテキスト群も全て functions.php で調整します。
add_filter('comment_form_defaults', 'custom_comment_form');
function custom_comment_form($args) {
$args['title_reply'] = 'コメントをどうぞ';
$args['comment_notes_before'] = '<div class="comment-notes"><ul><li>入力いただいたメールアドレスは公開されませんが、このブログが置いてあるサーバーに保存されます。</li><li>入力いただいた情報の他に、WordPress の機能により IPアドレス を取得させていただきます。取得した IPアドレス はスパムコメントの対処ために利用され、公開することはありません。</li><li>個人情報などを記入された場合、投稿いただいたコメントを表示しないか、該当箇所を編集して公開する可能性があります。</li></ul></div>';
$args['comment_notes_after'] = '<p class="form-allowed-tags">内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。</p>';
$args['label_submit'] = 'コメントを送信する';
return $args;
}
個人的には、「情報取得しますよ~」とか書いてあげたほうが親切かなぁと思ったりします。