Lấy ảnh bên ngoài làm ảnh thumbnail

Đây là chức năng cho phép thiết lập ảnh thumbnail cho bài viết từ link ảnh bên ngoài. Trường hợp bạn viết giao diện và cho phép người dùng thiết lập ảnh thumbnail tự động.

$image_url  = 'http://domain.com/url-hinh-anh.jpg';
$image_name = basename( $thumbnail );
$upload_dir = wp_upload_dir();
$image_data = file_get_contents( $image_url );

$unique_file_name = wp_unique_filename( $upload_dir['path'], $image_name );

$filename = basename( $unique_file_name );

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 );

if ( ! function_exists( 'wp_generate_attachment_metadata' ) ) {
	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 );

Lấy ảnh bên ngoài làm ảnh thumbnail

Mục đích của đoạn code trên là lưu ảnh bên ngoài vào thư mục uploads của WordPress. Sau đó thêm vào trình quản lý Media của WordPress. Cuối cùng là thiết lập ảnh vừa lưu làm thumbnail cho bài viết.

Xem thêm: Tự động set featured image cho bài viết

Đoạn code trên chỉ mang tính chất tham khảo nhé. Đây là bài viết dành cho phát triển WordPress nâng cao. Do vậy đòi hỏi bạn phải viết code. Mình không khuyến khích các bạn cóp dán mà không hiểu mục đích.

Hãy để lại bình luận của bạn để trao đổi cùng mọi người. Chúc bạn thành công.

Không có bình luận.

Bạn có thể trở thành người đầu tiên để lại bình luận.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *