• Đăng ký
  • Đăng nhập

Tắt chức năng tự thay đổi kích thước hình ảnh trong WordPress

📅 — 👀 1124 — 👦

Trang này có hữu ích không?

👍 Có (14)        👎 Không (12)


Trong Worpress có chức năng tự động thay đổi kích thước hình ảnh (large, medium, thumbnail) nhằm giúp cho chúng ta tối ưu xem hình ảnh của website trên các thiết bị khác nhau như PC, Table, Mobile. Nhưng vì chức năng này có khi lại làm cho host của chúng ta tăng dung lương đáng kể nên hôm nay tôi sẽ giúp các bạn tắt chức năng này đi để nhẹ cho host.

Bạn chèn 01 trong 03 đoạn code sau đây vào file function.php là được.

Cách 1:

remove_image_size('large');
remove_image_size('medium');
remove_image_size('thumbnail');

 

Cách 2:

add_filter('intermediate_image_sizes_advanced', function($sizes){
	return [];
}, 10, 2);

 

Cách 3:

add_filter('intermediate_image_sizes_advanced', function($sizes){
	/* Default WordPress */
	unset( $sizes[ 'thumbnail' ]);       // Remove Thumbnail (150 x 150 hard cropped)
	unset( $sizes[ 'medium' ]);          // Remove Medium resolution (300 x 300 max height 300px)
	unset( $sizes[ 'medium_large' ]);    // Remove Medium Large (added in WP 4.4) resolution (768 x 0 infinite height)
	unset( $sizes[ 'large' ]);           // Remove Large resolution (1024 x 1024 max height 1024px)

	/* With WooCommerce */
	unset( $sizes[ 'shop_thumbnail' ]);  // Remove Shop thumbnail (180 x 180 hard cropped)
	unset( $sizes[ 'shop_catalog' ]);    // Remove Shop catalog (300 x 300 hard cropped)
	unset( $sizes[ 'shop_single' ]);     // Shop single (600 x 600 hard cropped)

	return $sizes;
});

P/S 1: Nếu bạn không chắc chắn là hình ảnh resize có tên thumbnail, medium, medium_large, large,... thì bạn dùng đoạn code sau đây để thực hiện hoặc dùng cách 2:

foreach(get_intermediate_image_sizes() as $item)
{
	/* Hàm get_intermediate_image_sizes() lấy tất cả tên như: thumbnail, medium, medium_large, large */
	unset($sizes[$item]);
}

 

P/S 2: Nếu trên host của bạn đã tạo nhiều hình ảnh đã được resize thì copy hàm sau đây vào file function.php chạy 01 lần (có nghĩa là sau khi copy, bạn mở website của bạn thì lúc này code này chạy luôn, sau khi đã xóa các hình ảnh này thì xóa đoạn code này đi).Nhớ backup website trước nha!

//Lấy tất cả bài viết
$kk_all_posts = get_posts(array('post_type'=>'post','posts_per_page' => -1));

//Lấy folder gốc
$wp_root_path = str_replace('themes', '', get_theme_root());

foreach ($kk_all_posts as $post) {
	$images = get_attached_media ('image',$post);	
	$sizes = get_intermediate_image_sizes();
	
	foreach ($images as $image) {
		
		//Lấy link hình gốc
		$original_image = wp_get_attachment_image_src($image->ID, 'full' )[0];		
		foreach ($sizes as $size) {
			
			$att = wp_get_attachment_image_src($image->ID,$size);
			
			//So sánh link hình gốc khác với link hình resize
			if ($att[0] != $original_image) {
				$arr = explode("/wp-content/", $att[0]);				
				wp_delete_file($wp_root_path . $arr[1]);				
			}
		}
	}
}

Trả lời


📁 Wordpress
🔖 ,