我使用pods插件向用户添加新的自定义字段,因此我添加了4个文件自定义字段,然后尝试从注册页面将文件上传到此字段并创建新用户。但是当我上传文件时,它没有生成所有图像大小,当从管理面板打开新用户时,图像没有显示,但名称是,并且创建了图像帖子。请任何帮助表示赞赏。
我的代码:
$uploadfiles = upload_files();
$metas = array(
'uploadfiles1' => $uploadfiles[0]['attach_id'],
'uploadfiles2' => $uploadfiles[1]['attach_id'],
'uploadfiles3' => $uploadfiles[2]['attach_id'],
'uploadfiles4' => $uploadfiles[3]['attach_id'],
);
foreach ($metas as $key => $value) {
update_user_meta($user_id, $key, $value);
}
upload_files功能:
function upload_files(){
$files_uploaded = array();
$files = $_FILES;
$files_extensions = ["image/png", "image/jpeg", "image/bmp", "image/jpg", "application/pdf"];
$is_files_checked = check_upload_files($files, $files_extensions, 5);
if ($is_files_checked) {
foreach ($files as $key => $file) {
$file_name = get_file_name($key);
$upload_file_name = ($_POST['registration_fname'] . '_' . (!empty($_POST['registration_mname']) ? $_POST['registration_mname'] . '_' : '') . $_POST['registration_lname'] . '_' . $file_name . '_' . time() . get_file_extension($file['type']));
$upload_dir = wp_upload_dir();
if (move_uploaded_file($file["tmp_name"], $upload_dir['path'] . "/" . $upload_file_name)) {
$uploaded_file['file_name'] = $file_name;
$uploaded_file['upload_url'] = $upload_dir['url'] . "/" . $upload_file_name;
$attachment = array(
'guid' => $uploaded_file['upload_url'],
'post_mime_type' => $file['type'],
'post_title' => $upload_file_name,
'post_content' => '',
'post_status' => 'inherit'
);
$uploaded_file['attach_id'] = wp_insert_attachment( $attachment , $upload_dir['path']);
require_once( ABSPATH . 'wp-admin/includes/image.php' );
//Generate the metadata for the attachment, and update the database record.
$attach_data = wp_generate_attachment_metadata( $uploaded_file['attach_id'] , $upload_dir['path']);
wp_update_attachment_metadata( $uploaded_file['attach_id'], $attach_data);
$files_uploaded[] = $uploaded_file;
}
}
return $files_uploaded;
} else {
//$is_files_checked files error....
return $is_files_checked;
}
}
答案 0 :(得分:0)
在
中缺少 $uploaded_file['attach_id'] = wp_insert_attachment($attachment, $upload_dir['path'] . "/" . $upload_file_name);
require_once(ABSPATH . 'wp-admin/includes/image.php');
//Generate the metadata for the attachment, and update the database record.
$attach_data = wp_generate_attachment_metadata($uploaded_file['attach_id'], $upload_dir['path'] . "/" . $upload_file_name);
function ContactCtrl() {
var vm = this;
vm.reset = reset;
vm.submit = submit;
function reset(form) {
if (form) {
vm.name = undefined;
vm.email = undefined;
form.$setValidity();
form.$setPristine();
form.$setUntouched();
}
}
function submit(form) {
if (form) {
vm.reset(form);
}
}
}