Как изменить степень сжатия изображений JPEG в WordPress

Внимание! Данная статья помечена автором как устаревшая и информация в ней может быть неактуальна на текущий день. Используйте примеры кода на свой страх и риск.

Время от времени клиенты интересуются, почему загружаемые ими изображения в высоком разрешении и отличном качестве на сайте выглядят, мягко говоря, не так, как в оригинале. Открою вам небольшой секрет: WordPress производит автоматическое сжатие изображений в формате JPEG до 90% от оригинала (а с версии 4.5 до 82% для повышения производительности сайта на мобильных устройствах). Это сделано для уменьшения размеров изображений, что позволит сэкономить некоторое количество времени на загрузке сайта.

Но что, если перед загрузкой изображений самостоятельно сжимаете их в своём любимом редакторе? Или же вы ведёте свой фотоблог и хотите выкладывать изображения только в высоком качестве? В этом случае вам совсем не хотелось бы, чтобы над файлами были произведены ещё какие-то дополнительные действия, кроме как загрузка на хостинг. Или же другая ситуация: вы наоборот хотите увеличить степень автоматического сжатия загружаемых файлов, чтобы ускорить отдачу контента. Оба этих случаях рассмотрены в данной заметке.

Так же сообщу, что всё это относится только к JPEG, другие форматы автоматически не сжимаются и загружаются в своём оригинальном качестве.

Как отключить сжатие JPEG

Если вам нужно загружать свои изображения как есть, то есть со 100% качеством, тогда необходимо вставить следующий код в файл functions.php, находящийся в директории вашей темы:

add_action( 'jpeg_quality', 'update_jpeg_quality' );
function update_jpeg_quality(){
  return 100;
}

Отлично! Теперь ни один из вновь загружаемых файлов не будет подвержен каким-либо изменениям.

Как увеличить степень сжатия JPEG

Автоматическое изменение степени сжатия изображений позволяет оптимизировать файлы, положительно влияя на скорость загрузки сайта. Оно и понятно: чем меньше общий отдаваемый размер файлов, тем быстрее загрузится сайт.

Если вы не специалист в работе с графикой, то на глаз вряд ли увидите разницу между 85% и 80% сжатия фотографии, но специалисты в обработке фото будут приятно удивлены, насколько точно можно настроить сжатие файлов.

Так вот, для этого вам необходимо использовать абсолютно аналогичный код из примера выше, но с указанием нужной вам степени сжатия изображения. Например, увеличим сжатие до 70% следующим кодом:

add_action( 'jpeg_quality', 'update_jpeg_quality' );
function update_jpeg_quality(){
  return 70;
}

Вместо 70 установите ту степень, которую посчитаете нужным. Обычно 80-85% являются наиболее оптимальным значениями, без особого ущерба для качества картинки.

Как быть с загруженными ранее файлами?

Стоит помнить, что все изменения коснутся лишь новых изображений, которые вы будете загружать. Всё, что было загружено ранее — останется в том же качестве. Если же вы хотите автоматически обновить все превьюшки изображений на вашем сайте, воспользуйтесь удобным плагином Regenerate Thumbnails. Это позволит применить новые параметры для уже загруженных файлов.

Успехов! :-)

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Поделиться
Отправить

Как изменить степень сжатия изображений JPEG в WordPress: 2 комментария

  1. Если использовать такой вариант как в статье, WP версии 5.0 (другие не тестировал) выдаст ошибку: function create_function() is deprecate
    Поэтому, лучше использовать более современное решение:

    add_action( ‘jpeg_quality’, ‘mytheme_image_jpeg_quality’ );
    function mytheme_image_jpeg_quality(){
    return 100;
    }

    1. Благодарю за комментарий! :-)

      На момент написания статьи (2 года назад) подобный синтаксис был уместен, поэтому и был использован в заметке. Но вообще можно использовать и анонимные функции PHP, хотя ваш вариант подойдёт абсолютному большинству. Обновлю код в статье, благодарю!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *