问题描述

使用 wordpress 函数 comment_form 函数有没有办法用 html 元素包装提交按钮。

$comments_args = array(
            'id_form'               => 'main-contact-form',
            'class_form'            => 'contact-form',
            'class_submit'          => 'btn btn-primary btn-lg',
            'label_submit'          => 'Add Comment',
            'fields'                =>  $fields,
            'title_reply_before'    => '<div class="message_heading"><h4>',
            'title_reply_after'    => '</h4><p>Make sure you enter the(*)required information where indicate.HTML code is not allowed</p></div>',
            'comment_field' => '
                <div class="row"><div class="col-sm-7">                        
                    <div class="form-group">
                        <label>Message *</label>
                        <textarea name="message" id="message" required="required" class="form-control" rows="8"></textarea>
                    </div> 
                </div>'

        );

        comment_form($comments_args);

我要输出代码提交按钮就像:

 <div class="form-group">
     <input type="submit" class="btn btn-primary btn-lg>
 </div>

最佳解决方案

我们可以使用 comment_form 函数的 submit_button 参数来更改提交按钮的 HTML 。

submit_button 的默认 HTML 为

<input name="%1$s" type="submit" id="%2$s" class="%3$s" value="%4$s" />

你可以改变你的代码。

$comments_args = array(
   ....

   'submit_button' => '<div class="form-group">
            <input name="%1$s" type="submit" id="%2$s" class="%3$s" value="%4$s" />
        </div>'

   ....
);

更新:

关于%1$s%2$s 等。

如果您看看 comment_form()源码,可以看到 submit_button 正在通过这样的 sprintf 。

$submit_button = sprintf(
  $args['submit_button'],
    esc_attr( $args['name_submit'] ),
    esc_attr( $args['id_submit'] ),
    esc_attr( $args['class_submit'] ),
    esc_attr( $args['label_submit'] )
);

次佳解决方案

请将以下代码放在主题的 functions.php 文件中,并将 div 中的提交按钮包装起来:

// define the comment_form_submit_button callback
function filter_comment_form_submit_button( $submit_button, $args ) {
    // make filter magic happen here...
    $submit_before = '<div class="form-group">';
    $submit_after = '</div>';
    return $submit_before . $submit_button . $submit_after;
};

// add the filter
add_filter( 'comment_form_submit_button', 'filter_comment_form_submit_button', 10, 2 );

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。