NỘI DUNG (HIGHLIGHTS)
Tự động nén ảnh khi upload cho WordPress không dùng plugin sẽ tối ưu tốc độ website của bạn rất nhiều, nếu bạn muốn nội dung của bạn được xếp hạng tốt trên google thì bạn bắt buộc phải làm. Trong đó, dung lượng hình ảnh mà bạn tải lên sẽ chiếm gần 90%, nên nếu không tối ưu nó thì sẽ rất ảnh hưởng đến website. Hôm nay, mình sẽ chia sẻ với các bạn một đoạn code, nó sẽ tự động nén dung lượng ảnh của bạn xuống, mà bạn không cần dùng bất kì một plugin nào. Kéo xuống dưới nhé.
Để nén ảnh sẽ có rất nhiều Plugin làm tốt việc này như: EWWW Image Optimizer hoặc ShortPixel, nhưng chúng đều là plugin trả phí. Nên cái gì miễn phí thì vẫn tốt hơn.
Tự động nén ảnh khi upload cho WordPress
Tính năng tự động nén ảnh khi upload cho WordPress này nó sẽ nén dựa vào tính năng PHP Extensions GD có trong hosting của bạn. Điều đầu tiên là bạn phải kích hoạt extensions này lên đã.
1] Kích hoạt PHP Extensions GD
Bạn truy cập vào cPanel hosting của bạn. Sau đó tìm đến Select PHP Version bấm vào nó và chuyển sang tab Extensions tìm đến GD và kích hoạt nó nên.
2] Chèn code vào functions
Tiếp theo việc bạn phải làm là chèn đoạn code sau vào funstions theme bạn đang dùng và lưu lại là xong.
function dev_image_quality($image) {
if (extension_loaded('gd') && function_exists('imagecreatefromjpeg') && function_exists('imagecreatefrompng')) {
$allowed_formats = ['jpg', 'jpeg', 'png'];
$file_extension = strtolower(pathinfo($image['file'], PATHINFO_EXTENSION));
if (in_array($file_extension, $allowed_formats)) {
if ($file_extension === 'jpg' || $file_extension === 'jpeg') {
$image_resource = imagecreatefromjpeg($image['file']);
imagejpeg($image_resource, $image['file'], 40);
}
elseif ($file_extension === 'png') {
$image_resource = imagecreatefrompng($image['file']);
imagealphablending($image_resource, true);
imagesavealpha($image_resource, true);
imagetruecolortopalette($image_resource, false, 256);
imagepng($image_resource, $image['file'], 9);
}
imagedestroy($image_resource);
}
}
return $image;
}
add_filter('wp_handle_upload', 'dev_image_quality');
Các bạn để ý trong code có 2 cái là jpg và png. Các bạn có thể tùy chỉnh theo ý của mình nhé.
imagejpeg($image_resource, $image['file'], 40);
Đoạn này nén JPG, bạn thay số 40 thành con số mà bạn muốn, số càng cao thì dung lượng giảm càng nhiều kèm đó là chất lượng ảnh sẽ thấp hơn. Tính theo %
imagepng($image_resource, $image['file'], 9);
Bạn thay số 9 thành con số mà bạn muốn, đối với PNG thì bạn thay con số theo ý bạn trong khoảng 1 – 9
Chú ý: Tính năng tự động nén ảnh khi upload cho WordPress này nó sẽ không có tác dụng với ảnh bạn đã upload lên từ trước đâu nhé.
Tham khảo trên: caodem
Có thể bạn quan tâm: