我不确定您使用的是哪种表单插件,但实现这一点的一种方法是使用Contact Form 7 表单插件和扩展插件Post My CF7 Form. 它允许您在将表单提交映射到自定义帖子时触发过滤器,然后您可以创建一个挂接在过滤器上的自定义函数,以便根据需要将所有字段映射到帖子内容。
联系人表单7允许您为表单创建各种字段并进行布局。然后使用shortcode. 所以假设您将字段命名为field-1
, field-2
, field-3
, 和atitle
文章标题字段。您可以使用扩展插件映射表单,通过将标题字段映射到自定义帖子标题,并从帖子内容的下拉选项中选择过滤器选项,这将创建一个新过滤器,您可以使用functions.php
主题文件夹中的文件,
//assuming that your mapped custom post type is my-cpt
add_filter(\'cf7_2_post_filter-my-cpt-editor\',\'filter_my-cpt_content\',10,3);
function filter_my-cpt_content($value, $post_id, $form_data){
//$value is the post field value to return, by default it is empty
//$post_id is the ID of the post to which the form values are being mapped to
// $form_data is the submitted form data as an array of field-name=>value pairs
$value = \'<div id="form-field-content">\';
if(isset($form_data[\'field-1\']){
$value .= \'<p>Field: \'. $form_data[\'field-1\'] . \'</p>\';
}
if(isset($form_data[\'field-2\']){
$value .= \'<p>Field: \'. $form_data[\'field-2\'] . \'</p>\';
}
if(isset($form_data[\'field-3\']){
$value .= \'<p>Field: \'. $form_data[\'field-3\'] . \'</p>\';
}
$value .= \'<div/>\';
return $value;
}
这将用3个字段填充您的内容。