Неверный URL-адрес WordPress при использовании внешнего изображения - PullRequest
1 голос
/ 08 октября 2019

Я делаю плагин для Wordpress, в котором я хочу установить внешние изображения в качестве миниатюр постов. Ниже у меня есть код, который я написал для вставки URL в качестве вложения.

Я успешно вставляю вложение, но во внешнем интерфейсе ссылка на изображение не работает, поскольку WordPress добавляет каталог загрузки перед внешним URL-адресом следующим образом: https://siteurl.com/wp-content/uploads/https://external.com/image.jpg. Есть ли способ показать миниатюры, удаливURL каталога загрузки? (означает без https://siteurl.com/wp-content/uploads/).

<code>    $image_data = file_get_contents($image_url);

    if(wp_mkdir_p($upload_dir['path']))
        $file = $upload_dir['path'] . '/' . $filename;
    else
        $file = $upload_dir['basedir'] . '/' . $filename;
    file_put_contents($file, $image_data);


    $wp_filetype = wp_check_filetype(basename($filename), null);
    $attachment = array(
                    'post_mime_type' => $wp_filetype['type'],
                    'post_title' => preg_replace('/\.[^.]+$/', '',
                                                basename($filename)),
                    'post_content' => bic_removeAccent($pname),
                    'post_excerpt' => bic_removeAccent($pname),
                    'post_status' => 'inherit'
    );
    $attach_id = wp_insert_attachment($attachment, $file,
                                                $the_post_id);

    if ($attach_data = wp_generate_attachment_metadata($attach_id, $file)) {
            wp_update_attachment_metadata($attach_id, $attach_data);
    } else {
            echo '<div id="message" class="error"><h1>Failed to create Meta-Data</h1><pre>' . 
            print_r($attach_data) . '
';} set_post_thumbnail ($ the_post_id, $ attach_id);
...