WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru Рекомендуемые продукты со скидкой от Template Monster

jpeg_quality хук-фильтр . WP 2.5

Устанавливает качество сжатия создаваемых JPG файлов.

По умолчанию WordPress создает файлы с качеством сжатия 90%. Этот фильтр позволяет уменьшить или увеличить этот параметр.

В большинстве случаев нет необходимости изменять этот параметр. Однако, если вы хотите сэкономить на нескольких килобайтах, то было бы неплохо установить качество равное 80 или 70.

Изменение этого параметра влияет на качество только создаваемых из оригинала миниатюр, сам оригинал остается не тронутым...

Использование

add_filter( 'jpeg_quality', 'filter_function_name_11' );
function filter_function_name_11( $quality ) {  
	return 90;
}
$quality(число)
Коэффициент качества сжатия. Может быть от 0 (максимальное сжатие) - 100 (без сжатия).

Примеры

#1 Пример использования

Предположим вы фотограф и ведете свой блог. При публикации фотографий, их качество будет уменьшено, но вам нужно чтобы WordPress работал с картинками без уменьшения их качества, т.е. нам нужно 100% качество.

Сделать это можно использовав этот хук. Для этого нужно добавить в файл темы functions.php такой код:

add_filter( 'jpeg_quality', 'filter_function_name_11' );
function filter_function_name_11( $quality ){
	return 90;
}

Коротко его можно записать так (для версий PHP выше 5.3):

add_filter( 'jpeg_quality', function( $quality ){
	return 100;
} );

Список изменений

С версии 2.5.0 Введена.

Где вызывается хук

WP_Image_Editor::set_quality()
jpeg_quality
wp_save_image_file()
jpeg_quality
wp-includes/class-wp-image-editor.php 255
$quality = apply_filters( 'jpeg_quality', $quality, 'image_resize' );
wp-admin/includes/image-edit.php 375
return imagejpeg( $image, $filename, apply_filters( 'jpeg_quality', 90, 'edit_image' ) );

Где используется хук (в ядре WP)

Использование не найдено.
8 комментов
  • Николай

    Прекрасный сайт, спасибо;
    дизайн, конечно, можно улучшить,
    но наверное, главное не форма, а содержание!

    1
    Ответить4.2 года назад #
  • Kristina

    Кстати, я нашла интересный онлайн сервис, где можно определить или проверить качество сжатия, с каким был сохранён JPG файл: http://www.imgonline.com.ua/determine-jpeg-quality.php

    Ответить4 года назад #
  • kolshix546 paxtoy.com

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

    Такой вопрос: сайт изображений, на нем картинки - изменять их нельзя (качество очень важно), как сделать на странице attachment проверку вывода изображения по размеру мегабайт, если файл изображения больше 1.5 мб то выводить сжатое и добавить ссылку на исходное, а если меньше, то выводить оригинал ??

    Ответить3 года назад #
    • Kama7616

      Получить размер файла картинки можно так, дальше уже сделайте проверку и допишите код под нужды:

      $attach_id = 7358;
      $meta = wp_get_attachment_metadata( $attach_id );
      
      if ( isset( $meta['filesize'] ) )
      	$file_size = $meta['filesize'];
      elseif ( $file = get_attached_file( $attach_id ) )
      	if( file_exists( $file ) )
      		$file_size = filesize( $file );
      
      echo size_format( $file_size ); //> 19 KB
      Ответить3 года назад #
      • kolshix546 paxtoy.com

        Можно добавить к статье, что сжатие только для миниатюр, оригинал остается не тронутым, хотя выше написано "создаваемых JPG файлов" но сразу не понятно - проверял у себя на сайте, я поставил качество 20% для проверки и оригинал остался не тронутым

        Ответить2.4 года назад #
  • Alexandrov Yan34 codyshop.ru

    Можно ещё добавить, что на некоторых сайтах предлагается такой вариант:

    add_action( 'init', 'image_compression' );
    function image_compression(){
    	add_filter( 'jpeg_quality', create_function( '', 'return 100;' ) );
    }

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

    1
    Ответить7 мес назад #
    • Kama7616

      Ммм, не уверен что стоит заведомо корявый код в статью добавлять, многие копирую не читай описание к коду... Поэтому пусть тут в комментах лучше будет!

      1
      Ответить7 мес назад #
Здравствуйте, !     Войти . Зарегистрироваться