从URL上载图像并将其作为特色图像分配给自定义帖子类型?

时间:2014-09-06 作者:JasonDavis

我已经完成了90%的使用Amazon构建插件的工作。com API。我建造的是Books 自定义帖子类型。

My Books CPT具有自定义分类法Book Category, Book Tags, Book Author, 和Book Publisher/company

然后,我有一个设置页面,允许您使用there API从Amazon导入图书列表,您在textarea字段中插入ASIN ID号,每行1个,然后我将每本书作为图书CPT导入,并指定上面列出的自定义分类法。

目前我唯一缺少的是上传从Amazon API返回的图像的能力,我得到了图像的URL。我需要上传图像并将其指定为Featured Image 对于它正在创建的帖子。

我还没有找到一个解决方案,谁能帮我用一些代码从URL上传WordPress中的图像,然后将其作为特色图像分配给帖子?

1 个回复
SO网友:JasonDavis

我现在已经可以使用了,在发布这个问题之前,我已经尝试了下面的代码,但是我丢失了要分配给它的帖子ID,所以我刚刚意识到并修复了它,现在它确实可以使用了!

以下是代码,以防将来对其他人有所帮助。。。

  $photo_name = \'testimagename\';
  $newId = $post_id;

  // Set Featured Image
  $photo = new WP_Http();
  $photo = $photo->request( $image_url );
  $attachment = wp_upload_bits( $photo_name . \'.jpg\', null, $photo[\'body\'], date("Y-m", strtotime( $photo[\'headers\'][\'last-modified\'] ) ) );

  $filetype = wp_check_filetype( basename( $attachment[\'file\'] ), null );

  $postinfo = array(
      \'post_mime_type\'    => $filetype[\'type\'],
      \'post_title\'        => $title . \' \',
      \'post_content\'  => \'\',
      \'post_status\'   => \'inherit\',
  );
  $filename = $attachment[\'file\'];
  $attach_id = wp_insert_attachment( $postinfo, $filename, $newId );
  if( !function_exists( \'wp_generate_attachment_data\' ) )
      require_once(ABSPATH . "wp-admin" . \'/includes/image.php\');
  $attach_data = wp_generate_attachment_metadata( $attach_id, $filename );
  wp_update_attachment_metadata( $attach_id,  $attach_data );
  set_post_thumbnail($post_id,$attach_id);

结束