Как обновить изображение аватара через REST из мобильного приложения на сайт Wordpress - PullRequest
0 голосов
/ 22 марта 2019

Я создаю мобильное приложение, которое отправляет 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, но, похоже, ничего не работает.

...