使用wp_emote_get将图像添加到媒体库

时间:2013-09-25 作者:mAAdhaTTah

我使用Embeddely使客户端可以轻松地向其网站添加新闻-基本上,他们只需输入一个URL,然后Embeddely获取链接的信息,我将其全部添加到post meta中,以便在前端显示。到目前为止,一切顺利。

目前,我正在使用URL网站提供的缩略图,但我想做的是下载图像,将其添加到媒体库,并将其设置为特色图像。我得到了图像的URL,我想我必须使用wp_remote_get 下载图片,但我不知道剩下的步骤是什么。

编辑:以下是相关位:

function get_fr_news_embedly( $post_id ) {
$post = get_post( $post_id );

if ( $post->post_type == \'fr_news\' ) {

    $embedly_key = \'[key goes here]\';

    $api = new Embedly\\Embedly(array( \'key\' => $embedly_key, \'user_agent\' => \'Mozilla/5.0 (compatible; mytestapp/1.0)\' ));
    $fr_news_url = $post->fr_news_url;

    $fr_news_objs = $api->oembed( $fr_news_url );
    update_post_meta( $post_id, \'fr_news_objs\', $fr_news_objs );
    $fr_news_objs = get_post_meta( $post_id, \'fr_news_objs\' );

    foreach ($fr_news_objs as $k => $oembed) {
        $oembed = (array) $oembed;

        if (array_key_exists(\'thumbnail_url\', $oembed)) {
            $fr_news_thumbnail_url = $oembed[\'thumbnail_url\'];
            update_post_meta( $post_id, \'fr_news_thumbnail_url\', $fr_news_thumbnail_url );
            $image = wp_remote_get( $fr_news_thumbnail_url );
                            // wat do?
        }
问题归结为:如果您有一个图像的url,如何下载该图像并将其添加到媒体库?

1 个回复
最合适的回答,由SO网友:Wyck 整理而成

我没有测试atm的代码示例,但可以通过URL下载图像,在您的情况下$image = wp_remote_get( $fr_news_thumbnail_url ); 您可以使用以下功能:

media_sideload_image($file, $post_id, $desc);

http://codex.wordpress.org/Function_Reference/media_sideload_image

结束

相关推荐