Code lấy ảnh đầu tiên trong bài viết làm ảnh đại diện

Nhiều website cũ khi nâng cấp lên phiên bản WordPress cao hơn có thể gặp phải tình trạng mất ảnh đại diện hoặc theme lúc trước không hỗ trợ ảnh đại diện thì có thể sử dụng code dưới đây cho vào file functions.php để chúng tự động lấy ảnh đầu tiên trong bài viết đặt thành ảnh đại diện khi truy cập vào chuyên mục hoặc trang lưu trữ (archive).

Ảnh đại diện của bài viết là gì?

Để dễ hình dung bạn có thể truy cập vào đường dẫn này bạn sẽ thấy list danh sách các bài viết khác nhau, mỗi 1 bài viết đều có 1 hình ảnh, đó chính là ảnh đại diện của bài viết.

Nếu trong theme của bạn có hỗ trợ add_theme_support( 'post-thumbnails' ); khi soạn thảo bài viết sẽ có mục chọn ảnh đại diện như sau:

bạn có thể đọc qua bài viết này.

Code lấy ảnh đầu tiên trong bài viết làm ảnh đại diện

// Add a function to automatically set the first image as featured image
function vutruso_autoset_featured() {
      global $post;
      $already_has_thumb = has_post_thumbnail($post->ID);
      if (!$already_has_thumb)  {
         $attached_image = get_children( "post_parent=$post->ID&post_type=attachment&post_mime_type=image&numberposts=1" );
         if ($attached_image) {
            foreach ($attached_image as $attachment_id => $attachment) {
               set_post_thumbnail($post->ID, $attachment_id);
            }
         }
      }
   }
   add_action('the_post', 'vutruso_autoset_featured');
   add_action('save_post', 'vutruso_autoset_featured');
   add_action('draft_to_publish', 'vutruso_autoset_featured');
   add_action('new_to_publish', 'vutruso_autoset_featured');
   add_action('pending_to_publish', 'vutruso_autoset_featured');
   add_action('future_to_publish', 'vutruso_autoset_featured');

Sau khi cho code vào file functions bạn lưu lại và xem kết quả. Với code này bạn cũng có thể code thêm điều kiện, nếu bài viết không có ảnh nào luôn thì có thể đặt cho nó 1 ảnh mặc định ví dụ no-thumbnail.png hoặc 1 ảnh nào đó tuỳ bạn.

Chúc bạn thành công.

Nếu bạn thấy bài viết có ích hãy sao chép link và chia sẻ bài viết
user

Yêu thích Võ thuật và Công nghệ thông tin, thích viết và chia sẽ về 2 lĩnh vực này thế thôi :D

Bài viết liên quan