Updated
我不知道没有ContactForm 7插件怎么做,但下面是我过去在CF7中的代码:
假设您的文件字段为[file your-file]
.
add_action( \'wpcf7_before_send_mail\', \'my_cf7_save_featured_image\', 10, 2 );
function my_cf7_save_featured_image( $instance, $result ) {
require_once( ABSPATH . \'wp-admin/includes/image.php\' );
require_once( ABSPATH . \'wp-admin/includes/admin.php\' );
// Get submission data instead of using $_POST
$sub = \\WPCF7_Submission::get_instance();
$data = $sub->get_posted_data();
// Create post
$my_post = array(
\'post_title\' => $data[\'title\'],
\'post_content\' => $data[\'description\'],
\'post_status\' => \'publish\',
\'post_type\' => \'post\',
);
$post_id = wp_insert_post($my_post);
add_post_meta( $post_id, \'address1\', $data[\'address1\'], false );
// extract submitted file
$uploaded_files = $sub->uploaded_files();
$image_name = $data[\'your-file\'];
$image_location = $uploaded_files[\'your-file\'];
$image_content = file_get_contents( $image_location );
// set upload path
$dir = wp_upload_dir();
$upload = wp_upload_bits( $image_name, null, $image_content );
$filename = $upload[\'file\'];
$wp_filetype = wp_check_filetype( basename( $filename ), null );
$attachment = array(
\'post_mime_type\' => $wp_filetype[\'type\'],
\'post_title\' => preg_replace( \'/\\.[^.]+$/\', \'\', basename( $filename ) ),
\'post_content\' => \'\',
\'post_status\' => \'inherit\',
);
// start upload and attach to post
$attach_id = wp_insert_attachment( $attachment, wp_slash( $filename ), $post_id );
// update image metadata
$attach_data = wp_generate_attachment_metadata( $attach_id, wp_slash( $filename ) );
wp_update_attachment_metadata( $attach_id, $attach_data );
}