如何在WordPress中将Imagick资源上传到媒体

时间:2017-08-04 作者:Int-khab

    $filePath = wp_get_attachment_url( $id );
$tempfilename = explode("/", $filePath);
$temppdffile = end($tempfilename);
$cuurentPath = plugin_dir_path( __FILE__ ).$temppdffile;
$im = new Imagick();
$im->setResolution(300, 300);
$im->readImage( $cuurentPath.\'[0]\'); 
$im->setImageFormat(\'jpg\');
我有以上代码。。我已成功生成图像$imBut我必须将图像保存到。。wordpress中的媒体作为特色图像?任何想法。。什么都试过了

1 个回复
SO网友:Ben HartLenn

我对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\');

结束

相关推荐

分页的Author.php不使用Author.php模板

我创造了一个作家。php显示作者的帖子,并分页。单击“下一步”按钮时,我会进入第二页,但使用的模板不同。有什么原因吗?My query in author.php$curauth = (get_query_var(\'author_name\')) ? get_user_by(\'slug\', get_query_var(\'author_name\')) : get_userdata(get_query_var(\'author\')); $paged = ( get_query_var( \