Hướng dẫn dừng cắt xén hình ảnh nhiều kích thước trong WordPress

WordPress tự động cắt và lưu nhiều kích thước ảnh khác nhau có thể tiêu tốn đáng kể dung lượng hosting, đặc biệt với các trang web có nhiều hình ảnh. Việc dừng cắt xén các kích thước không cần thiết là một cách tuyệt vời để tối ưu.

Có hai cách chính để dừng WordPress tạo ra các kích thước ảnh không mong muốn: thông qua giao diện cài đặt và thông qua code trong functions.php.

1. Dừng cắt xén qua giao diện cài đặt WordPress

Đây là cách đơn giản nhất cho các kích thước cơ bản mà WordPress cung cấp.

  1. Đăng nhập vào bảng điều khiển WordPress của bạn.
  2. Đi tới Cài đặt (Settings) > Đa phương tiện (Media).
  3. Tại đây, bạn sẽ thấy các cài đặt cho các kích thước mặc định:
    • Kích thước ảnh thu nhỏ (Thumbnail size): Đặt Chiều rộng (Width)Chiều cao (Height) về 0. Bỏ chọn “Cắt xén ảnh thu nhỏ theo đúng tỉ lệ này (thường thì ảnh thu nhỏ sẽ có tỉ lệ không cân đối).”
    • Kích thước trung bình (Medium size): Đặt Chiều rộng tối đa (Max Width)Chiều cao tối đa (Max Height) về 0.
    • Kích thước lớn (Large size): Đặt Chiều rộng tối đa (Max Width)Chiều cao tối đa (Max Height) về 0.
  4. Nhấp vào Lưu thay đổi (Save Changes).

Lưu ý: Cách này chỉ dừng WordPress tạo các kích thước này trong tương lai. Các ảnh đã upload trước đó vẫn còn các kích thước đã được cắt.


2. Dừng cắt xén qua code trong functions.php

Đối với các kích thước khác mà theme hoặc plugin tạo ra (ví dụ: medium_large, 1536x1536, 2048x2048, hoặc các kích thước tùy chỉnh của plugin như _nx_notification_thumb_*), bạn cần thêm code vào file functions.php của theme đang hoạt động (hoặc theme con để tránh mất code khi cập nhật theme).

Trước khi thực hiện, hãy luôn sao lưu file functions.php của bạn!

Bạn có thể chỉnh sửa functions.php qua Giao diện (Appearance) > Trình chỉnh sửa tập tin giao diện (Theme File Editor) hoặc tốt hơn là dùng FTP/cPanel để tải về và chỉnh sửa.

Dưới đây là các đoạn code tương ứng với từng yêu cầu của bạn:

a. Dừng cắt xén tất cả (không khuyến nghị hoàn toàn)

Để dừng hầu hết các kích thước ảnh (trừ kích thước gốc), bạn có thể sử dụng đoạn code sau. Tuy nhiên, việc dừng cắt xén tất cả có thể ảnh hưởng đến giao diện của bạn nếu theme hoặc plugin cần một số kích thước ảnh nhất định để hiển thị đúng. Hãy cân nhắc kỹ.

// Dừng tất cả các kích thước ảnh mặc định và tùy chỉnh (có thể ảnh hưởng đến layout)
function remove_all_image_sizes() {
    foreach ( get_intermediate_image_sizes() as $size ) {
        remove_image_size( $size );
    }
}
add_action( 'init', 'remove_all_image_sizes' );

b. Dừng cắt xén từng kích thước cụ thể

Đây là cách an toàn và linh hoạt nhất. Bạn sẽ thêm các hàm remove_image_size() cho từng kích thước mà bạn muốn dừng.

Thêm đoạn code này vào cuối file functions.php của theme bạn:

/**
 * Dừng cắt xén các kích thước hình ảnh không cần thiết.
 */
function disable_unused_image_sizes() {
    // Dừng cắt xén thumbnail (W: 0 - Đã cấu hình trong Settings, nhưng vẫn thêm code để chắc chắn)
    update_option( 'thumbnail_size_w', 0 );
    update_option( 'thumbnail_size_h', 0 );
    set_post_thumbnail_size( 0, 0 ); // Cập nhật kích thước thumbnail mặc định trong theme

    // Dừng cắt xén medium (W: 0 - Đã cấu hình trong Settings, nhưng vẫn thêm code để chắc chắn)
    update_option( 'medium_size_w', 0 );
    update_option( 'medium_size_h', 0 );

    // Dừng cắt xén medium_large (W: 768)
    remove_image_size( 'medium_large' );
    update_option( 'medium_large_size_w', 0 ); // Đặt về 0 cũng là một cách vô hiệu hóa
    update_option( 'medium_large_size_h', 0 );

    // Dừng cắt xén large (W: 0 - Đã cấu hình trong Settings, nhưng vẫn thêm code để chắc chắn)
    update_option( 'large_size_w', 0 );
    update_option( 'large_size_h', 0 );

    // Dừng cắt xén 1536x1536
    remove_image_size( '1536x1536' );
    // Đôi khi cần set về 0 để vô hiệu hóa nếu remove_image_size không đủ mạnh
    update_option( '1536x1536_size_w', 0 );
    update_option( '1536x1536_size_h', 0 );

    // Dừng cắt xén 2048x2048
    remove_image_size( '2048x2048' );
    // Đôi khi cần set về 0 để vô hiệu hóa nếu remove_image_size không đủ mạnh
    update_option( '2048x2048_size_w', 0 );
    update_option( '2048x2048_size_h', 0 );

    // Dừng cắt xén các kích thước tùy chỉnh của plugin _nx_notification_thumb
    remove_image_size( '_nx_notification_thumb_100_100' );
    remove_image_size( '_nx_notification_thumb_200_200' );
    remove_image_size( '_nx_notification_thumb_300_300' );
    remove_image_size( '_nx_notification_thumb_400_400' );
    remove_image_size( '_nx_notification_thumb_500_500' );
}
add_action( 'init', 'disable_unused_image_sizes' );

// Tùy chọn: Loại bỏ các kích thước ảnh khỏi danh sách các kích thước mặc định mà WordPress tạo ra
// Điều này giúp dọn dẹp thêm và ngăn theme/plugin vô tình tạo lại
function customize_image_sizes( $sizes ) {
    unset( $sizes['thumbnail'] );
    unset( $sizes['medium'] );
    unset( $sizes['large'] );
    unset( $sizes['medium_large'] ); // Kích thước 768px
    unset( $sizes['1536x1536'] );    // Kích thước 1536px
    unset( $sizes['2048x2048'] );    // Kích thước 2048px

    // Loại bỏ các kích thước của _nx_notification_thumb (nếu chúng được thêm vào $sizes)
    unset( $sizes['_nx_notification_thumb_100_100'] );
    unset( $sizes['_nx_notification_thumb_200_200'] );
    unset( $sizes['_nx_notification_thumb_300_300'] );
    unset( $sizes['_nx_notification_thumb_400_400'] );
    unset( $sizes['_nx_notification_thumb_500_500'] );

    return $sizes;
}
add_filter( 'intermediate_image_sizes_advanced', 'customize_image_sizes' );
add_filter( 'image_size_names_choose', 'customize_image_sizes' ); // Để loại bỏ khỏi Media Library UI

Giải thích code:

  • update_option( 'thumbnail_size_w', 0 );: Đặt chiều rộng của kích thước thumbnail về 0. Khi chiều rộng hoặc chiều cao là 0, WordPress sẽ không tạo kích thước đó.
  • remove_image_size( 'medium_large' );: Đây là cách để WordPress không tạo ra các kích thước ảnh mà theme hoặc plugin đã đăng ký.
  • add_action( 'init', 'disable_unused_image_sizes' );: Đảm bảo hàm này chạy khi WordPress khởi tạo, để các thay đổi có hiệu lực.
  • intermediate_image_sizes_advancedimage_size_names_choose: Các bộ lọc này giúp loại bỏ các tùy chọn kích thước ảnh khỏi giao diện thư viện media của WordPress, tránh nhầm lẫn.

3. Dọn dẹp các kích thước ảnh đã tồn tại

Các phương pháp trên chỉ ngăn WordPress tạo các kích thước mới. Để xóa các kích thước ảnh không cần thiết đã có sẵn trong thư mục uploads của bạn, bạn cần sử dụng một plugin.

Plugin được đề xuất: Regenerate Thumbnails

  1. Cài đặt và kích hoạt plugin Regenerate Thumbnails.
  2. Sau khi kích hoạt, đi tới Công cụ (Tools) > Regenerate Thumbnails.
  3. Bạn sẽ thấy tùy chọn để “Xóa các kích thước ảnh cũ không sử dụng” (Delete old un-used thumbnail sizes) hoặc tương tự. Chọn tùy chọn này và chạy quá trình.
  4. Plugin này sẽ quét qua thư viện media của bạn, xóa các kích thước ảnh không còn được đăng ký và tạo lại các kích thước mới cho những kích thước bạn vẫn giữ lại.

Lưu ý: Quá trình này có thể mất một chút thời gian nếu bạn có nhiều hình ảnh.


Bằng cách kết hợp cả ba bước: cấu hình trong giao diện, thêm code vào functions.php và sử dụng plugin để dọn dẹp, bạn sẽ kiểm soát hoàn toàn việc WordPress tạo và lưu trữ các kích thước hình ảnh, giúp tiết kiệm dung lượng hosting hiệu quả.

Xem thêm: Thêm chức năng xóa bài viết là xóa ảnh cho website WordPress

Rate this post
Chia sẻ tới bạn bè và gia đình
kiendinh
kiendinh

Đinh Hùng Kiên, từng "thử sức" với C++, C#, nhưng lại rẽ hướng sang Marketing. Với tư duy logic sắc bén từ nền tảng lập trình và sự hỗ trợ mạnh mẽ của AI (ChatGPT, Gemini), Kiên chuyên về gỡ lỗi, triển khai các tính năng website. Kiên lập codecungai.com để giúp những người không chuyên biến ý tưởng thành hiện thực trên WordPress một cách dễ dàng.

Bài viết: 12
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 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
0
Rất thích suy nghĩ của bạn, hãy bình luận.x