0
我是C#程序員 - 但正在嘗試進入PHP。將精選圖片設置爲特定網址,而不是文件名
我正在使用插件將亞馬遜產品導入網站。
但是,我的主機阻止我導入圖像 - 通常將其用作特色圖像。
下面的代碼在嘗試導入圖像時設置了精選圖像。
我怎樣才能改變它設置特色圖像,但使用的完整URL原來亞馬遜圖像鏈接(我想這是$ IMAGE_URL):
function set_featured_image($post_id, $image_url){
require_once(ABSPATH . "wp-admin" . '/includes/image.php');
require_once(ABSPATH . "wp-admin" . '/includes/file.php');
require_once(ABSPATH . "wp-admin" . '/includes/media.php');
$upload_dir = wp_upload_dir();
$image_data = file_get_contents($image_url);
$filename = basename($image_url);
$filename_ar = explode('.', $filename);
$filename = sanitize_file_name($filename_ar[0]).'.'.$filename_ar[1];
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($filename, null);
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => sanitize_file_name($filename),
'post_content' => '',
'post_status' => 'inherit'
);
$attach_id = wp_insert_attachment($attachment, $file, $post_id);
require_once(ABSPATH . 'wp-admin/includes/image.php');
$attach_data = wp_generate_attachment_metadata($attach_id, $file);
wp_update_attachment_metadata($attach_id, $attach_data);
set_post_thumbnail($post_id, $attach_id);
}
還是我必須手動導入圖像和鏈接到本地?
感謝您的幫助,
馬克
嗨 - 你的意思是直接鏈接到亞馬遜的形象,例如。 http://amazon/images/myimage.jpg?如果是這樣,那就是我要做的 - 但我不知道如何更改上面的代碼,以使用圖像的URL,而不是本地文件名。謝謝,Mark – Mark 2015-03-19 09:53:43
是的,這就是我的意思。我還沒有深入研究過使用WordPress插件,但是應該已經有一些東西可以爲你做我想象中的事情了。 我剛剛發現這個:http://wordpress.org/plugins/external-featured-image/或許你甚至可以看看這段代碼,看看它是如何做到的,並根據你的需要進行調整。 – Leprichaun 2015-03-19 09:59:25
嗨 - 是的,那會做這項工作 - 但我仍然必須手動修改每篇文章。我一次使用的插件導入50個產品 - 我希望只是改變上面的代碼,以設置特色圖像使用完整的URL $ image_url亞馬遜圖像。謝謝,馬克 – Mark 2015-03-19 10:06:45