我正在构建一个自定义表单(不使用任何插件),它从前端而不是管理区域的用户处获取数据。其中一个表单元素是一个文件字段,用户可以在其中上传多个文件。
在Wordpress中存储用户生成的文件的机制是什么?是否有任何帮助开发人员轻松存储文件的辅助函数?
答案 0 :(得分:1)
按下上传按钮后,您将使用$ _FILES
获取文件BLOB$file = $_FILES['filename'];
$filename = $file["tmp_name"]
$upload_file = wp_upload_bits($filename, null, $file);
if (!$upload_file['error']) {
$wp_filetype = wp_check_filetype($filename, null );
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_parent' => $parent_post_id,
'post_title' => preg_replace('/\.[^.]+$/', '', $filename),
'post_content' => '',
'post_status' => 'inherit'
);
//If you want to insert into a post or custom posttype, then make $parent_post_id = 0
//Otherwise $parent_post_id = id of post/posttype
$attachment_id = wp_insert_attachment( $attachment, $upload_file['file'], $parent_post_id );
if (!is_wp_error($attachment_id)) {
$attachment_data = wp_generate_attachment_metadata( $attachment_id, $upload_file['file'] );
wp_update_attachment_metadata( $attachment_id, $attachment_data );
//1- get the url
$url = wp_get_attachment_url( $id );
//2-get current logged in user ID
$user_id = get_current_user_id();
add_user_meta( $user_id, 'uploaded_attachments', $url );
}else{
//Failed with message = $attachment_id->get_error_message()
}
}else{
//Error : file upload failed
}
答案 1 :(得分:0)
向用户添加新字段的wp api函数是" add_user_meta"功能。
在我看来,您必须使用函数" add_user_meta"向用户添加新的自定义字段。然后,您应该使用函数" wp_insert_attachment"将上传的文件添加到媒体库中。
阅读表格值。
1 - 使用" wp insert attachment"添加上传的文件。
2 - 使用" add_user_meta"。
功能将字段添加到用户3 - 将参考ID分配给用户字段。
这些是文件链接: https://codex.wordpress.org/Function_Reference/add_user_meta
https://developer.wordpress.org/plugins/users/working-with-user-metadata
https://codex.wordpress.org/Function_Reference/wp_insert_attachment
此致 编