Thông thường mỗi bài viết trong wordpress chúng ta thường chọn 1 hình ảnh là hình đại diện để hiển thị trên các trang danh mục. Hình đại diện này thường được lựa chọn kỹ càng và làm tăng giá trị về mặt thẩm mỹ & nội dung cho web.

Có 2 cách cơ bản để giải quyết vấn đề này đó là tìm plugin thần thánh đáp ứng hai là code riêng. Google một lúc với cụm từ “automatically Set the Featured Image” “set first image as featured image wordpress” ta sẽ tìm thấy một số plugin giải quết vấn đề này như sau:
Plugin lấy ảnh đầu tiên làm thumbnail wordpress
- First Picture as Featured Image /
- Auto set first image as featured – dante / By BehroozDante
- Get First Image Set As Featured Image / By Venugopal
Code lấy ảnh đầu tiên làm thumbnail wordpress
/** codfe.com – tự lấy hình đầu tiên trong bài viết làm thumbnail **/
function auto_featured_image() {
global $post;if (!has_post_thumbnail($post->ID)) {
$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);
}
}
}
}
// Use it temporary to generate all featured images
add_action(‘the_post’, ‘auto_featured_image’);
// Used for new posts
add_action(‘save_post’, ‘auto_featured_image’);
add_action(‘draft_to_publish’, ‘auto_featured_image’);
add_action(‘new_to_publish’, ‘auto_featured_image’);
add_action(‘pending_to_publish’, ‘auto_featured_image’);
add_action(‘future_to_publish’, ‘auto_featured_image’);
Thêm đoạn code trên vào function.php của theme nhé
Trường hợp bài viết không có hình ảnh
Đoạn code không hoạt động khi bài viết không có hình ảnh, do vậy đối với những trường hợp này chúng ta phải tự lấy một hình ảnh chúng ta chọn trước làm hình đại diện cho tất cả các bài viết không có bất cứ hình nào. Thêm đoạn code sau vào function để giải quyết vấn đề này nhé!
/** codfe.com – thiết lập hình ảnh làm thumbnail mặt định**/
add_filter( ‘post_thumbnail_html’, ‘wpsites_default_post_image’ );function wpsites_default_post_image( $html ) {if ( empty( $html ) )$html = ‘<img src=”<span style=”color: #ed1c24;” data-mce-style=”color: #ed1c24;”>’ . trailingslashit( get_stylesheet_directory_uri() ) . ‘images/default-image.png</span>’ . ‘” alt=”enter your alt text here” />’;return $html;}
/** codfe.com – thiết lập hình ảnh làm thumbnail mặt định**/add_filter( ‘post_thumbnail_html’, ‘wpsites_default_post_image’ );function wpsites_default_post_image( $html ) {if ( empty( $html ) )$html = ‘<img src=”https://codfe.com/wp-content/uploads/2019/03/no-image.jpg’ . ‘” alt=”enter your alt text here” />’;return $html;}
Lưu ý: Với theme Flatsome hàm the_post_thumbnail() đã bị bỏ qua khi post không có hình ảnh đại diện do đó đoạn code trên sẽ không hoạt động, các bạn có thể fix bằng cách hook nó với hàm như sau của flatsome nhé (thêm vào function.php)
/**code lay hinh anh lam dai dien **/function codfe_blog_post_before(){if(has_post_thumbnail()) {// khong lam gi ca} else {returnthe_post_thumbnail($image_size);}}add_action(‘flatsome_blog_post_before’,’codfe_blog_post_before’);
Với các đoạn code trên mình hy vọng các bạn đã giải quyết triệt đế vấn đề về hình đại diện của mình rồi nhé.