اگر جزء آن دسته از افرادی هستید که از توابع wp_insert_post برای ایجاد خودکار نوشته یا نوع نوشته دلخواه در وردپرس استفاده میکنید، این آموزش میتواند به شما در بارگذاری و تنظیم تصویر شاخص نوشتهها از آدرس خارجی کمک کند.
به منظور تنظیم تصویر شاخص نوشتهها از یک آدرس خارجی در حالت عادی بدین صورت است که شما تصویر را از آدرس خارجی بارگیری و سپس به صورت دستی در رسانه وردپرس بارگذاری نمایید. این کار با استفاده از تابع زیر به صورت خودکار امکانپذیر است. برای اینکار کافی است تابع زیر را در فایل functions.php قرار دهید و سپس آن را در جایی که میخواهید فراخوانی کنید.
function Generate_Featured_Image($image_url, $post_id)
{
// Add Featured Image to Post
$response = wp_remote_get($image_url, array(
'sslverify' => false,
'timeout' => 15
));
// set up image details
$image_contents = $response['body'];
$image_type = wp_remote_retrieve_header($response, 'content-type');
$image_extension = false;
switch ($image_type) {
case 'image/jpeg':
$image_extension = '.jpg';
break;
case 'image/png':
$image_extension = '.png';
break;
}
// Construct a file name using post slug and extension
$fname = urldecode(basename(get_permalink($post_id)));
// make suffix optional
// construct new file name
$new_filename = preg_replace('/[^A-Za-z0-9\-]/', '', $fname) . $image_extension;
// Save the image bits using the new filename
$upload = wp_upload_bits($new_filename, null, $image_contents);
if ($upload['error']) {
return false;
}
$image_url = $upload['url'];
$filename = $upload['file'];
$wp_filetype = wp_check_filetype(basename($filename), null);
$attachment = array(
'post_mime_type' => $wp_filetype['type'],
'post_title' => get_the_title($post_id),
'post_content' => '',
'post_status' => 'inherit',
'guid' => $upload['url']
);
$attach_id = wp_insert_attachment($attachment, $filename, $post_id);
// you must first include the image.php file
// for the function wp_generate_attachment_metadata() to work
require_once(ABSPATH . 'wp-admin/includes/image.php');
// Define attachment metadata
$attach_data = wp_generate_attachment_metadata($attach_id, $filename);
// Assign metadata to attachment
wp_update_attachment_metadata($attach_id, $attach_data);
// And finally assign featured image to post
set_post_thumbnail($post_id, $attach_id);
}
نحوه عملکرد تابع بالا بدین صورت است که آدرس تصویر (فایلی که در خارج از وردپرس وجود دارد) و شناسه نوشته را به عنوان آرگومان ورودی دریافت میکند. سپس اطلاعات تصویر نظیر نام، حجم و… را براساس آدرس تصویر آنالیز میکند و در صورتی که مشکلی وجود نداشته باشد، تصویر را به طور خودکار در رسانه وردپرس تنظیم میکند. در انتها، با استفاده از set_post_thumbnail تصویر مورد نظر را به عنوان تصویر شاخص برای نوشته مورد نظر، تنظیم مینماید.
امیدواریم این آموزش برایتان مفید واقع شده باشد. در صورتی که سؤالی دارید، آن را از طریق پشتیبانی آنلاین با ما در میان بگذارید.
سلام مطلب شما درباره تنظیم تصویر شاخص نوشتهها از آدرس خارجی خواندم
لطفا میشه بفرمایید بعد از اینکه کد مربوط به قسمت فانکشن رو داخل قالب قرار دادم ، چطور در قسمت افزودن پست فراخوانی کنم تا کاربر بتونه لینک رو درج کند؟
ممنون میشم راهنمایی کنید
سلام دوست عزیز
شما برای استفاده کافیست نام تابع را صدا بزنید و دو پارامتر آن یعنی آدرس تصویر و شناسه نوشته را بدهید تا تصویر پس از دانلود از سایت مبدأ در سایت مقصد بارگذاری و به عنوان تصویر شاخص به نوشته اضافه گردد. یکی از کارهایی که میتوان انجام داد استفاده از متاباکس در بخش نوشتهها میباشد. متاباکسی ایجاد کنید و هنگام بهروزرسانی نوشته آن را به تابع ارسال نمایید.
موفق و پیروز باشید