🛑 Cách Ngăn Chặn WordPress Crop Hình Ảnh Khi Upload và Giữ Ảnh Nguyên Gốc

❓ Vấn đề:

Khi bạn upload một hình ảnh vào WordPress, hệ thống mặc định sẽ tự động:

  • Tạo ra nhiều kích thước ảnh: thumbnail, medium, large, medium_large, 1536x1536, 2048x2048, v.v.
  • Cắt hoặc resize ảnh theo tỉ lệ định trước.

Điều này có thể làm đầy thư mục uploads, tốn dung lượng lưu trữ và gây khó khăn khi quản lý.


✅ Cách khắc phục: Chỉ giữ ảnh gốc duy nhất

🔧 1. Tắt tạo ảnh mặc định trong Media Settings

Vào: Admin > Settings > Media
Đặt tất cả các kích thước về 0:

  • Thumbnail size → Width: 0, Height: 0
  • Medium size → Width: 0, Height: 0
  • Large size → Width: 0, Height: 0

⏳ WordPress vẫn có thể tạo các size mới thông qua theme hoặc plugin, nên bạn cần thêm các bước dưới đây.


🧩 2. Xóa các size ảnh bổ sung từ theme/plugin

Thêm đoạn code sau vào file functions.php của theme (hoặc plugin riêng):

// Xoá các kích thước ảnh mặc định
function remove_default_image_sizes($sizes) {
    unset($sizes['thumbnail']);
    unset($sizes['medium']);
    unset($sizes['large']);
    unset($sizes['medium_large']);
    unset($sizes['1536x1536']);
    unset($sizes['2048x2048']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced', 'remove_default_image_sizes');

// Xoá kích thước ảnh do theme/plugin thêm vào
function stop_image_sizes_creation() {
    remove_image_size('post-thumbnail'); // Featured image
    remove_image_size('another-custom-size'); // Thêm bất kỳ size nào bạn biết
}
add_action('init', 'stop_image_sizes_creation');

🛠 3. Tắt các size ảnh đăng ký bởi Gutenberg (WordPress 5.3+)

Thêm tiếp vào functions.php:

remove_action('init', '_wp_customize_include');

Hoặc đơn giản hơn: tắt hoàn toàn các size ảnh chất lượng cao:

add_filter( 'big_image_size_threshold', '__return_false' );

🧹 4. Xóa các ảnh đã crop trước đó (nếu cần)

Nếu bạn đã upload nhiều ảnh, các bản crop vẫn còn trong /uploads/. Hãy dùng plugin như:

  • Media Cleaner
  • Hoặc dùng WP-CLI:
wp media regenerate --skip-delete

Hoặc dùng lệnh shell thủ công (risky hơn):

find wp-content/uploads/ -type f ! -name "*-original.*" ! -name "*.jpg" -delete

🎯 Kết quả

Sau các bước trên, WordPress sẽ:

  • Không còn tạo các kích thước ảnh phụ khi upload.
  • Chỉ giữ ảnh gốc như bạn mong muốn.
  • Giảm số lượng file rác, tiết kiệm dung lượng.