Jen*_*ell 4 media wordpress image url-rewriting download
media_sideload_image
WordPress有一个名为media_sideload_image的函数。它用于上传图像并将其附加到媒体库。
我接受这样的图片网址:
h ** p://s.wordpress.org/style/images/wp-header-logo.png
重写的URL
网络上的某些URL被重写,例如:
http://placekitten.com/100/100
错误信息:
“ 很抱歉,出于安全原因,不允许使用此文件类型。 ”
文件类型是正确的JPG文件,但文件扩展名丢失。
就我而言,添加额外的MIME类型无效
我尝试了此功能,但对我没有帮助,因为未设置文件扩展名。
add_filter('upload_mimes', 'add_custom_upload_mimes');
function add_custom_upload_mimes($existing_mimes){
$existing_mimes['jpeg'] = 'image/jpeg';
return $existing_mimes;
}
Run Code Online (Sandbox Code Playgroud)
题
如何上传带有media_sideload_image或类似内容的URL h ** p://placekitten.com/100/100,以将图像附加到媒体库?
小智 6
昨天,当我需要此解决方案时,我阅读了您的问题。24小时后我找到了答案。
这是完整的解决方案
require_once(ABSPATH . 'wp-admin/includes/media.php');
require_once(ABSPATH . 'wp-admin/includes/file.php');
require_once(ABSPATH . 'wp-admin/includes/image.php');
$image_url = "http://domain.com/blog/23092839823";
$image_tmp = download_url($image_url);
if( is_wp_error( $image_tmp ) ){
echo "<br> Image Download Fail:";
}else {
$image_size = filesize($image_tmp);
$image_name = basename($image_url) . ".jpg"; // .jpg optional
//Download complete now upload in your project
$file = array(
'name' => $image_name, // ex: wp-header-logo.png
'type' => 'image/jpg',
'tmp_name' => $image_tmp,
'error' => 0,
'size' => $image_size
);
//This image/file will show on media page...
$thumb_id = media_handle_sideload( $file, $post_id, $desc);
set_post_thumbnail($post_id, $thumb_id); //optional
echo "<br> Image Save ";
}
Run Code Online (Sandbox Code Playgroud)