问题描述
使用 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 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。