私はカスタムWordPressテーマを作成しています、そして私はコメントフォームを微調整しようとしています。 私のブログページ に行き、commentsセクション(各エントリの一番下)までスクロールすると、commentsセクションには2つのtextarea
フィールドがあります。最初のものは欲しくありませんが、なぜ、どうやってそこに挿入されるのかわかりません。フォームの順序は、名前、電子メール、コメントの順にしてください。追加のテキスト領域のコードは、functions.phpのカスタムコメントフォーム用に書いたコードにはありません。
function alpha_comments_defaults($defaults){
$defaults['id_form'] = '';
$defaults['id_submit'] = '';
return $defaults;
}
function alpha_comments_fields(){
$commenter= wp_get_current_commenter();
$req = get_option('require_name_email');
$aria_req = ($req ? " aria-required='true'" : ' ');
$fields = array(
'author' =>
'<p class="comment-form-author"><label>' . __( 'Name', 'domainreference' ) . ( $req ? '<span class="required">*</span>' : '' ) . '</label> ' .
'<input name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" ' . $aria_req . ' /></p>',
'email' =>
'<p class="comment-form-email"><label>' . __( 'Email', 'domainreference' ) . ( $req ? '<span class="required">*</span>' : '' ) . '</label> ' .
'<input name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" ' . $aria_req . ' /></p>',
'url' =>
'',
'comment_field' =>
'<p class="comment-form-comment"><label>' . _x( 'Comment', 'noun' ) . '</label>' .
'<textarea name="comment" cols="45" rows="8" ' . $aria_req . '></textarea></p>'
);
return $fields;
}
add_filter('comment_form_defaults', 'alpha_comments_defaults');
add_filter('comment_form_default_fields', 'alpha_comments_fields');
余分なフォームフィールドを削除する方法
WordPressは他のフィールドとは別にコメントフィールドを扱うようです。 wp-includes/comment-template.php
のcomment_form()
を見ると、これがわかります。
alpha_comments_defaults()
で$defaults['comment_field']
をfalseに設定してから、コメントフィールドのマークアップをalpha_comments_fields()
の$fields['comment_field']
に望みの順序で追加することは可能ですが、これはプラグインで問題を引き起こす可能性があります。
私は物事を動かし、あなたが要求したフィールドの順序を処理するためのコードを追加しました。
function alpha_comments_defaults( $defaults ) {
$defaults['id_form'] = '';
$defaults['id_submit'] = '';
$defaults['comment_field'] = '<p class="comment-form-comment"><label>' . _x( 'Comment', 'noun' ) . '</label>' .
'<textarea name="comment" cols="45" rows="8" aria-required="true"></textarea></p>';
return $defaults;
}
add_filter('comment_form_defaults', 'alpha_comments_defaults');
function alpha_comments_fields( $fields ) {
$commenter= wp_get_current_commenter();
$req = get_option( 'require_name_email' );
$aria_req = ( $req ? " aria-required='true'" : ' ' );
$fields = array(
'author' =>
'<p class="comment-form-author"><label>' . __( 'Name', 'domainreference' ) . ( $req ? '<span class="required">*</span>' : '' ) . '</label> ' .
'<input name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30" ' . $aria_req . ' /></p>',
'email' =>
'<p class="comment-form-email"><label>' . __( 'Email', 'domainreference' ) . ( $req ? '<span class="required">*</span>' : '' ) . '</label> ' .
'<input name="email" type="text" value="' . esc_attr( $commenter['comment_author_email'] ) . '" size="30" ' . $aria_req . ' /></p>',
'url' => '',
);
return $fields;
}
add_filter('comment_form_default_fields', 'alpha_comments_fields');
// Reorder comment fields.
// http://wordpress.stackexchange.com/a/218324/2807
function alpha_move_comment_field( $fields ) {
$comment_field = $fields['comment'];
unset( $fields['comment'] );
$fields['comment'] = $comment_field;
return $fields;
}
add_filter( 'comment_form_fields', 'alpha_move_comment_field' );