Я делаю плагин для 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);