Я создаю мобильное приложение, которое отправляет REST-запросы на сайт Wordpress, и я хочу обновить изображение аватара определенного user_id.Это мой код:
$user_id = $json_api->query->user_id;
$base64 = $json_api->query->image;
$imgdata = base64_decode($base64);
$f = finfo_open();
$mime_type = finfo_buffer($f, $imgdata, FILEINFO_MIME_TYPE);
$type_file = explode('/', $mime_type);
$avatar = time() . '.' . $type_file[1];
$uploaddir = wp_upload_dir();
$myDirPath = $uploaddir["path"];
$myDirUrl = $uploaddir["url"];
file_put_contents($uploaddir["path"].'/'.$avatar,$imgdata);
$filename = $myDirUrl.'/'.basename( $avatar );
$wp_filetype = wp_check_filetype(basename($filename), null );
$uploadfile = $uploaddir["path"] .'/'. basename( $filename );
$attachment = array(
"post_mime_type" => $wp_filetype["type"],
"post_title" => preg_replace("/\.[^.]+$/", "" , basename( $filename )),
"post_content" => "",
"post_status" => "inherit",
'guid' => $uploadfile,
);
require_once(ABSPATH . '/wp-load.php');
require_once(ABSPATH . 'wp-admin' . '/includes/file.php');
require_once(ABSPATH . 'wp-admin' . '/includes/image.php');
$attachment_id = wp_insert_attachment( $attachment, $uploadfile );
$attach_data = wp_generate_attachment_metadata( $attachment_id, $uploadfile );
wp_update_attachment_metadata( $attachment_id, $attach_data );
update_post_meta($attachment_id,'_wp_attachment_wp_user_avatar',$user_id);
update_user_meta($user_id, 'wp_user_avatar', $attachment_id);
Мне нужно сохранить изображение, как показано ниже:
wp-content/uploads/avatar/<user_id>/image-bpfull.jpg
wp-content/uploads/avatar/<user_id>/image-bpthumb.jpg
Я имеюизменил параметры file_put_contents
, добавив в путь user_id
, но, похоже, ничего не работает.