通过PHP上传Wordpress附件

通过PHP上传Wordpress附件,php,image,wordpress,featured,Php,Image,Wordpress,Featured,我试图上传一个外部图像,并通过php将其设置为特色图像 我使用的代码如下: $photo = new WP_Http(); $photo = $photo->request( $article->largeURL ); $attachment = wp_upload_bits( $photo_name . '.jpg', null, $photo['body'], date("Y-m", strtotime( $photo['heade

我试图上传一个外部图像,并通过php将其设置为特色图像

我使用的代码如下:

        $photo = new WP_Http();
        $photo = $photo->request( $article->largeURL );
        $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'        => $article->heading . ' ',
            '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($newId,$attach_id)
它将图像上传到媒体,但没有设置为特色图像,但我认为问题在于图像上传,“媒体”中的附件屏幕如下所示

这似乎表明,由于没有缩略图、名称或类型,某些信息没有正确传递

非常感谢大家的帮助!
谢谢

我会发表评论,但我还不被允许发表评论

1) 您是从后端还是前端执行此操作?您可能需要一张支票。
2) 在
设置发布缩略图时,
$newId=$post->ID
?这可能就是为什么它不作为特色图片附加的原因。

3) 您的文件名未保留扩展名/
$photo\u代码中未定义名称
。您最好使用。

guid在哪里?还有$FILES[]数组?作为一个sitenote,为什么不使用download_url()?