将图像从URL保存到wordpress媒体库

时间:2017-02-12 17:29:51

标签: php wordpress

我有一个函数可以保存为url存储图像,唯一的问题是除了图像“无法找到”之外它似乎都工作正常

图像和名称位于媒体库中,但图像被破坏,因为当您通过URL打开图像时,它显示“未找到”

如果我错过了什么,你可以告诉我。

function set_image_from_url($url) {


    $tmp = download_url( $url );

    $file_array = array(
        'name' => basename( $url ),
        'tmp_name' => $tmp
    );

    /**
     * Check for download errors
     * if there are error unlink the temp file name
     */
    if ( is_wp_error( $tmp ) ) {
        @unlink( $file_array[ 'tmp_name' ] );
        return $tmp;
    }

    /**
     * now we can actually use media_handle_sideload
     * we pass it the file array of the file to handle
     * and the post id of the post to attach it to
     * $post_id can be set to '0' to not attach it to any particular post
     */
    $post_id = '0';

    $id = media_handle_sideload( $file_array, $post_id );

    /**
     * We don't want to pass something to $id
     * if there were upload errors.
     * So this checks for errors
     */
    if ( is_wp_error( $id ) ) {
        @unlink( $file_array['tmp_name'] );
        return $id;
    }

    /**
     * No we can get the url of the sideloaded file
     * $value now contains the file url in WordPress
     * $id is the attachment id
     */
    $value = wp_get_attachment_url( $id );

// Now you can do something with $value (or $id)

    return $id;

}

2 个答案:

答案 0 :(得分:0)

所以这是一个非常愚蠢的答案,但......

我更改了本地的默认网址,因为我想让它显示来自实际网站的图片。将其设置回本地上传文件夹位置开始正确显示图像。

发布答案,以便其他人提出同样的问题。检查您的设置>媒体>文件的完整URL路径。

全部谢谢!

答案 1 :(得分:-1)

从谷歌搜索和下载插件..

此插件取代了内置的“从URL导入”媒体 上传选项卡,允许您从远程下载图像 进入WordPress媒体库的URL。缩略图 远程图像是在本地创建的,上传后就是 能够添加自定义媒体属性(如标题,标题)和 将图像插入您的博客文章。 如何找到插件: 编辑帖子时,单击“添加媒体” 然后选择“保存并从URL导入”:如果您的窗口是 大,这是在左边的边栏。如果你的窗口是 小,你需要选择下拉菜单“插入 媒体“是预先选定的。 功能列表: 直接将远程图像包含在博客文章中 必须在本地将其保存到您的计算机 成为更好的互联网公民:避免使用热链接图像 缓解! 下载后重命名图像 与媒体库完全集成 - 包括创建 缩略图.. ..

喜欢&份额