add_image_size

Регистрирует новый размер миниатюр.

Регистрация означает, что WordPress, при загрузке изображения, кроме базовых размеров будет создавать еще один файл – измененную копию оригинала с указанными размерами.

Чтобы для поста можно было определить картинку миниатюру, нужно активировать эту возможность функцией – add_theme_support( ‘post-thumbnails’ ); в файле шаблона funсtions.php.

Хуков нет.

Возвращает

Ничего не возвращает.

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

add_image_size( $name, $width, $height, $crop );
$name(строка) (обязательный)
Название нового размера картинок.
По умолчанию: нет
$width(число) (обязательный)
Ширина миниатюры (в пикселях).
$height(число) (обязательный)
Высота миниатюры (в пикселях).
$crop(логический)

Как создавать миниатюру?

  • false – мягкое кадрирование: миниатюра создается по одной из подходящих сторон: указанной ширине или высоте. Итоговая картинка не будет точно совпадать указанным размерам;

  • true – жесткое кадрирование: миниатюра создается точно по указанным размерам. Подбирается наиболее подходящая сторона, картинка уменьшается по ней, а у противоположной стороны лишняя часть, не подходящая по пропорциям обрезается;

  • array( координата_X, координата_Y ) – указание позиции кадрирования, т.е. если указать массив (array( 'right', 'top')), то изображение будет кадрированно с указанных позиций.
    По умолчанию: false

Зарезервированные названия размеров

thumb, thumbnail, medium, large, post-thumbnail

Названия “thumb” и “thumbnail” – это алиасы (синонимы) и относятся к одинаковым файлам.

Смотрите также описание функции image_downsize().

Также вы можете установить опции создаваемой миниатюры через:

if ( function_exists( 'add_theme_support' ) ) {
	add_theme_support( 'post-thumbnails' );
		set_post_thumbnail_size( 150, 150 ); // размер миниатюры поста по умолчанию
}

if ( function_exists( 'add_image_size' ) ) {
	add_image_size( 'category-thumb', 300, 9999 ); // 300 в ширину и без ограничения в высоту
	add_image_size( 'homepage-thumb', 220, 180, true ); // Кадрирование изображения
}

Кадрирование (crop)

#1 – false (мягкое кадрирование)

Эта строка укажет WP, что при загрузке нового файла, нужно создать его уменьшенную копию. В этом случае миниатюра будет подогнана под ширину или высоту, смотря какая из сторон подходит больше, а противоположная сторона будет уменьшена пропорционально и скорее всего не будет больше указанного размера. Например, у нас оригинал картинки 2500х1800 пикселей мы делаем миниатюру 220х180 пикселей. Картинка будет уменьшена до размеров –  250х180 px, т.е. высота будет 180, как мы и указали, однако ширина получится выше указанной 250 а не 220. В этом случае картинка не кадрируется и уменьшенная копия сохраняет пропорции полностью.

<?php
function add_image_size( $name, $width = 0, $height = 0, $crop = false ) {
	global $_wp_additional_image_sizes;

	$_wp_additional_image_sizes[ $name ] = array(
		'width'  => absint( $width ),
		'height' => absint( $height ),
		'crop'   => $crop,
	);
}