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

Cập nhật lần cuối vào

Đâ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.

Theo dõi
Thông báo của
guest

0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận