在对核心代码进行了一些挖掘之后(因为该区域中的过滤器似乎大多没有文档记录),我发现WP就是这样做的。
$req = get_option( \'require_name_email\' );
从这里开始,解决如何重新格式化注释表单是很简单的。
$html5 = TRUE; // False if xhtml
$req = get_option( \'require_name_email\' );
$html_req = ( $req ? " required=\'required\'" : \'\' );
$commenter = wp_get_current_commenter();
$aria_req = ( $req ? " aria-required=\'true\'" : \'\' );
if(!isset($commenter[\'comment_author\'])){
$commenter[\'comment_author\']=\'\';
}
if(!isset($commenter[\'comment_author_email\'])){
$commenter[\'comment_author_email\']=\'\';
}
if(!isset($commenter[\'comment_author_url\'])){
$commenter[\'comment_author_url\']=\'\';
}
$comment_args = array(
\'class_submit\' => \'btn btn-outline-primary submit\',
\'comment_field\' => \'<p class="comment-form-comment"><label for="comment">\' . _x( \'Comment\', \'noun\' ) . \'</label> <textarea id="comment" name="comment" class="form-control" cols="45" rows="8" aria-required="true" required="required"></textarea></p>\',
\'fields\' => array(
\'author\' => \'<p class="comment-form-author">\' . \'<label for="author">\' . __( \'Name\' ) . ( $req ? \' <span class="required">*</span>\' : \'\' ) . \'</label> \' .
\'<input id="author" name="author" class="form-control" type="text" value="\' . esc_attr( $commenter[\'comment_author\'] ) . \'" size="30"\' . $aria_req . $html_req . \' /></p>\',
\'email\' => \'<p class="comment-form-email"><label for="email">\' . __( \'Email\' ) . ( $req ? \' <span class="required">*</span>\' : \'\' ) . \'</label> \' .
\'<input id="email" name="email" class="form-control" \' . ( $html5 ? \'type="email"\' : \'type="text"\' ) . \' value="\' . esc_attr( $commenter[\'comment_author_email\'] ) . \'" size="30" aria-describedby="email-notes"\' . $aria_req . $html_req . \' /></p>\',
\'url\' => \'<p class="comment-form-url"><label for="url">\' . __( \'Website\' ) . \'</label> \' .
\'<input id="url" name="url" class="form-control" \' . ( $html5 ? \'type="url"\' : \'type="text"\' ) . \' value="\' . esc_attr( $commenter[\'comment_author_url\'] ) . \'" size="30" /></p>\',
),
\'format\'=>\'html5\'
);
comment_form($comment_args);
如果您正在使用引导,那么您的表单现在看起来很可爱。