web-dev-qa-db-ja.com

WP コメントフォーム(カスタム)は追加のコメントフィールドを表示しています

私はカスタム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');

余分なフォームフィールドを削除する方法

2
Digital Brent

WordPressは他のフィールドとは別にコメントフィールドを扱うようです。 wp-includes/comment-template.phpcomment_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' );
3
Dave Romsey