如何添加自定义评论字段,但*仅限于评论回复表单*?

时间:2014-12-19 作者:Mohib

我一直在到处搜索,但找不到任何解释如何只在回复表单中添加自定义字段的内容。我在评论表单上看到并获得了可用的自定义字段,但当用户单击“回复”时,我希望有一组不同的字段。更好的做法是根据回复级别设置不同的字段集。

这就是我想做的。

假设您有一个网站,其中发布了一条博客条目,您希望人们将其作为第一级评论发布评论和评论。我会为第一级评论添加一个自定义字段,选项(单选按钮或下拉菜单):“Review”、“comment”。这很容易做到,而且有很好的文档记录。

然后,对于第二级回复,我希望人们发表评论,说明他们是否同意该评论以及原因,或者只是发表评论,因此我希望在第二级回复中添加一个字段,该字段具有选项:“同意”、“不同意”、“评论”,但不应显示第一级评论上的自定义字段(带有“评论”、“评论”)。这是我无法理解或找到任何提示的地方,也无法找到任何允许您访问回复表单的挂钩/过滤器。

我看了这个问题(看起来很相似),但不知道做了什么,所以不知道这是否是一个解决方案:Customize reply form different to comment form

非常感谢您的帮助。

2 个回复
SO网友:Amit Mishra

通过使用comment_form( $args, $post_id ) 您可以像这样在评论表单中添加额外字段

$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 for="author">\' . __( \'Name\' ) . \'</label> \' . ( $req ? \'<span class="required">*</span>\' : \'\' ) .
        \'<input id="author" name="author" type="text" value="\' . esc_attr( $commenter[\'comment_author\'] ) . \'" size="30"\' . $aria_req . \' /></p>\',
    \'email\'  => \'<p class="comment-form-email"><label for="email">\' . __( \'Email\' ) . \'</label> \' . ( $req ? \'<span class="required">*</span>\' : \'\' ) .
        \'<input id="email" name="email" type="text" value="\' . esc_attr(  $commenter[\'comment_author_email\'] ) . \'" size="30"\' . $aria_req . \' /></p>\',
);

$comments_args = array(
    \'fields\' =>  $fields
);


comment_form($comments_args);
还有Customizing Comments 字段

SO网友:naveen kumar

我们甚至可以使用“comment\\u form\\u default\\u fields”过滤器向注释中添加字段。将此添加到函数中。我们可以添加如下字段:

function add_comment_fields($fields) {

$fields[\'age\'] = \'<p class="comment-form-age"><label for="age">\' . __( \'Age\' ) . \'</label>\' .
    \'<input id="age" name="age" type="text" size="30" /></p>\';
return $fields;
}
add\\u filter(\'comment\\u form\\u default\\u fields\',\'add\\u comment\\u fields\');

#respond .comment-form-author label,
#respond .comment-form-email label,
#respond .comment-form-url label,
#respond .comment-form-age label,
#respond .comment-form-comment label {
background: #eee;
-webkit-box-shadow: 1px 2px 2px rgba(204,204,204,0.8);
-moz-box-shadow: 1px 2px 2px rgba(204,204,204,0.8);
box-shadow: 1px 2px 2px rgba(204,204,204,0.8);
color: #555;
display: inline-block;
font-size: 13px;
left: 4px;
min-width: 60px;
padding: 4px 10px;
position: relative;
top: 40px;
z-index: 1;
}

Reference url

结束