Когда мы загружаем изображение в WordPress, то далее система нарезает его на новые изображения в соответствии с настройками в «Настройки — Медиафайлы».
По умолчанию там указано следующее:
- Размер миниатюры — 150х150
- Средний размер — 300х300
- Крупный размер — 1024х1024
- На самом деле есть еще размеры, которые можно использовать, но об этом я напишу как-нибудь потом
Но также часто кроме создания новых изображений, WordPress также немного поджимает их, фактически качество сжатия по умолчанию 90%. Что может влиять на внешний вид сайта. Изображения становятся более «мыльными». Как поправить?
Сниппет
Сниппет, который мы можем вставить например в functions.php:
add_filter('jpeg_quality', function () {
return 100;
});
add_filter('wp_editor_set_quality', function () {
return 100;
});Подробнее почитать про фильтры wp_editor_set_quality и jpeg_quality можно в документации, ссылки оставлю ниже. Но краткая суть почему мы используем эти два фильтра следующая:
wp_editor_set_quality— общий фильтр- но для JPEG он игнорируется,
- потому что для JPEG используется отдельный фильтр
jpeg_quality
В WP_Image_Editor логика примерно такая:
- если MIME =
image/jpeg→ применяетсяjpeg_quality - для остальных форматов → применяется
wp_editor_set_quality
Регенерация старых изображений
Важно упомянуть следующий нюанс: код выше отключает сжатие только для новых изображений, а старые останутся такими же мыльными. Чтобы это исправить надо сгенерировать изображения заново. Сделать это можно с помощью плагина, например с помощью Force Regenerate Thumbnails
