您可能需要使用media_media_sideload_image()
作用此函数将从URL获取图像并为您上载。查看此自定义函数:
function upload_image_from_url($image_url, $post_id, $title) {
$img_name = basename ($image_url);
global $wpdb;
$query = "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_value = \'$img_name\'";
$id = $wpdb->get_var($query);
if (is_numeric($id)) {
return $id;
} else {
$attachment_src = media_sideload_image( $image_url, $post_id, $title,\'src\' );
$query = "SELECT post_id FROM {$wpdb->postmeta} WHERE meta_value = \'$img_name\'";
$id = $wpdb->get_var($query);
return $id;
}
}
上述功能的作用是搜索数据库,查看图像是否已上载。如果没有,它会将图像上载到库中并返回其ID,然后可供以后使用
wp_get_attachment_url()
获取URL。
您可以调整此函数,使其不依赖于$post_id
或$title
(上传后将附件从帖子中分离出来)以获取您所需的内容。
这是安全的,并保证工作(如果你不考虑特殊情况)。