自定义评论表格问题

时间:2013-08-12 作者:LoomyBear

我正在开发Wordpress主题,在定制评论表单时遇到了一个问题。我想要的是消除URL字段,并为名称和电子邮件字段设置自己的类。我是这样做的:

    $commenter = wp_get_current_commenter();
    $req = get_option( \'require_name_email\' );
    $aria_req = ( $req ? " aria-required=\'true\'" : \'\' );
    $fields =  array(
        \'author\' => \'<p class="post-comment-name"><label for="post-comment-name">\' . __( \'Name\' ) . \'</label><input type="text" id="post-comment-name" name="post-comment-name" placeholder="Write your name" value="\' . esc_attr( $commenter[\'comment_author\'] ) . \'" \' . $aria_req . \' /></p>\',
        \'email\' => \'<p class="post-comment-email"><label for="post-comment-email">\' . __( \'Email\' ) . \'</label><input type="text" id="post-comment-email" name="post-comment-email" placeholder="Your email to reply" value="\' . esc_attr( $commenter[\'comment_email\'] ) . \'" \' . $aria_req . \' /></p>\',
        \'url\' => \'\'
    );
    $comments_args = array(
        \'title_reply\' => \'\',
        \'comment_notes_before\' => \'\',
        \'id_submit\' => \'post-comment-submit\',
        \'fields\' =>  $fields
    );

    comment_form($comments_args);
毕竟视觉上我已经得到了我想要的。我有我想要的所有样式的表单,没有URL字段。

The problem 当我尝试提交注释表单并填写所有数据时,我收到消息:“需要字段名称和电子邮件”,并且注释提交失败。

几乎什么都试过了,什么都没用。请协助!

3 个回复
最合适的回答,由SO网友:LoomyBear 整理而成

我终于成功了。

你所需要做的就是保存id 尝试自定义所有字段时的属性:

$fields =  array(
    \'author\' => \'<input id="my-input-id" />\', // Does not work
    \'email\' => \'<input id="email" />\', // Works
);
要使其工作,您所需要做的就是保留输入id. 我不知道也许有一种方法可以用不同的输入制作WP流程评论表ids, 但我没有找到。我认为这不是一个真正关键的问题,但至少应该在codex或smth中提及。

如果你有什么要补充的,请做!

SO网友:JMau

可以按如下方式取消设置此字段:

function wpse_109744_comment_form_fields($fields) {
 if(isset($fields[\'url\']))
  unset($fields[\'url\']);
}
$fields [\'email\'] = \'your markup\';
$fields [\'author\'] = \'your markup\';

$return $fields;
add_filter(\'comment_form_default_fields\', \'wpse_109744_comment_form_fields\')
EDIT :

SO网友:Chetan Chitte

我终于找到了。您应该在输入和文本区域中保持相同的名称字段。

示例:name=“author”&;name=“电子邮件”。

结束