Lấy Link Ảnh Ngoài Làm Thumbnail Cho WordPress
Khi đọc tiêu đề bài viết này, bạn sẽ nghĩ đến việc lấy hình ảnh đầu tiên trong bài viết để làm Thumbnail (Dĩ nhiên hình ảnh đó là link ngoài). Nhưng đó không phải nội dung tôi muốn nói đến trong bài viết này.
Trong bài viết này tôi muốn chia sẻ cách lấy 1 ảnh bất kỳ từ website để đặt làm ảnh đại diện (Post Thumbnail), nó không đơn giản là hiển thị ra ngoài nữa. Mà bạn vẫn sử dụng hàm the_post_thumbnail() để hiển thị thumbnail ra ngoài.
Trong WordPress, bạn chỉ có thể set 1 ảnh là Post Thumbnail nếu hình ảnh đó có trong phần Media của WordPress (Được upload lên Media của WordPress, và tất nhiên nó sẽ là ảnh trong website).
Nên để lấy 1 ảnh bên ngoài để set post thumbnail thì bạn cần download ảnh đó về và upload lên phần media của WordPress, sau đó kết quả sẽ trả về attach_id, bạn dùng attach_id đó để set post thumbnail.
Tôi có viết thành 1 hàm như sau:
function Generate_Featured_Image( $image_url, $post_id ){ $upload_dir = wp_upload_dir(); $image_data = file_get_contents($image_url); $filename = basename($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($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 ); $res1= wp_update_attachment_metadata( $attach_id, $attach_data ); $res2= set_post_thumbnail( $post_id, $attach_id ); }
Hàm này sẽ truyền vào 2 tham số:
- $image_url: Link của ảnh
- $post_id: Post ID muốn set làm ảnh đại diện
Cách sử dụng:
Bạn bỏ hàm trên vào file functions.php của theme bạn đang sử dụng
Hàm này được sử dụng nhiều trong việc Crawler data từ website khác về. Khi lấy dữ liệu từ website khác về và insert vào WordPress sẽ trả về biến $post_id vừa insert vào. Còn $image_url thì lấy từ website khác rồi. Lúc này bạn chỉ cần gọi hàm trên để thực viện việc set post thumbnail.
Kết luận
Trên đây là chút kinh nghiệm về việc lấy link ảnh ngoài làm Post Thumbnail trong WordPress. Hy vọng có ích với các bạn.
Trong bài sau tôi sẽ hướng dẫn cách Crawler Data từ 1 website bất kỳ về WordPress, và áp dụng hàm này để Set Thumbnail.
Cái này rất hữu ích cho mấy bác tự động đăng tin.
Đúng rồi bạn. Nó phù hợp với mấy website lấy dữ liệu tự động
[…] Trước đây tôi có một bài hướng dẫn làm việc này. Mời bạn đọc qua bài viết Lấy Link Ảnh Ngoài Làm Thumbnail Cho WordPress […]
[…] Trước đây tôi có một bài hướng dẫn làm việc này. Mời bạn đọc qua bài viết Lấy Link Ảnh Ngoài Làm Thumbnail Cho WordPress […]
[…] Trước đây tôi có một bài hướng dẫn làm việc này. Mời bạn đọc qua bài viết Lấy Link Ảnh Ngoài Làm Thumbnail Cho WordPress […]
[…] Trước đây tôi có một bài hướng dẫn làm việc này. Mời bạn đọc qua bài viết Lấy Link Ảnh Ngoài Làm Thumbnail Cho WordPress […]