如果已在中找到筛选器comment_form
功能,您非常接近。有一个名为comment_form_default_fields
它允许您向字段数组中添加额外的输入字段,字段数组通常包含名称、邮件地址和url。你这样使用它(在你的主题中functions.php
):
add_filter (\'comment_form_default_fields\',\'wpse270550_add_field\');
function wpse270550_add_field ($fields) {
$fields[\'your_field\'] = \'<p><label for="your_field">Your Label</label><input id="your_field_id" name="your_field" type="text" value="" size="30"/></p>\';
return $fields;
}
如果只想将此字段添加到某个CPT的注释表单中,唯一需要做的就是添加一个条件:
add_filter (\'comment_form_default_fields\',\'wpse270550_add_field\', 10, 1);
function wpse270550_add_field ($fields) {
if (\'your_cpt\' == get_post_type())
$fields[\'your_field\'] = \'<p><label for="your_field">Your Label</label><input id="your_field_id" name="your_field" type="text" value="" size="30"/></p>\';
return $fields;
}
请注意,以上内容只会在用户端的表单中添加字段。您还希望在提交字段后将其存储在数据库中。为此,您必须将
comment_post
这样的动作:
add_action (\'comment_post\', \'wpse270550_add_comment_meta_value\', 10, 1);
function wpse270550_add_comment_meta_value ($comment_id) {
if(isset($_POST[\'your_field\'])) {
// sanitize data
$your_field = wp_filter_nohtml_kses($_POST[\'your_field\']);
// store data
add_comment_meta ($comment_id, \'your_field\', $your_field, false);
}
}