我对Imagick不太熟悉,但如果你能为你用它创建的图像找到一个URL,那么剩下的就可以直接使用WordPress的media_sideload_image()
作用这里有一个基本的示例,可以从wp管理区域(如设置页面)工作。请注意,看起来您会使用$id
替换my的变量$post_id
:
// load image from URL into media library, set a post as its parent, and return new attachment\'s id
$attachment_id = media_sideload_image( $image_url, $post_id, $img_title, \'id\');
if( !is_wp_error( $attachment_id ) ) { // if no error returned...
// ...Set above loaded image as the featured image of the current post
set_post_thumbnail($post_id, $attachment_id);
}
请注意,Codex表示media\\u sideload\\u image的第三个参数设置了图像的描述,但它设置了图像标题。此外,他们刚刚在4.8中添加了用于返回附件id的第四个参数,所以希望您是最新的。
更多信息:
还请注意,如果您在前端实现此功能,则需要在脚本中包含以下三个文件,以便media\\u sideload\\u image可以处理上载等操作:
require_once(ABSPATH . \'wp-admin/includes/media.php\');
require_once(ABSPATH . \'wp-admin/includes/file.php\');
require_once(ABSPATH . \'wp-admin/includes/image.php\');