Lấy Link Ảnh Ngoài Làm Thumbnail Cho WordPress

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.

Click to rate this post!
[Total: 1 Average: 5]

Hoàng An

Tôi không phải là 1 chuyên gia lập trình, cũng không phải là 1 chuyên gia SEO. Với niềm đam mê với CNTT, tôi có thể biến ý tưởng thành sản phẩm và thích chia sẻ kiến thức cho người khác. Nếu có duyên, mời bạn đến với khoá học của tôi
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
5 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Cường
4 năm trước

Cái này rất hữu ích cho mấy bác tự động đăng tin.

trackback

[…] 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 […]

trackback

[…] 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 […]

trackback

[…] 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 […]

5
0
Rất thích suy nghĩ của bạn, hãy bình luận.x
()
x