Генерация миниатюр в WordPress на лету 

Категория: WordPress

Использование плагина Fly Dynamic Image Resizer для динамической генерации миниатюр (thumbnails) "на лету".

Описание плагина

Плагин предоставляет набор собственных ф-ций для регистрации именованных размеров миниатюр и для получения самих миниатюр. В самом простом случае можно просто указать какого размера миниатюру нужно создать, без ее предварительной регистрации. Изображения генерируются при первом запросе и сохраняются в каталог wp-content/uploads/fly-images/{attachment id}/{image name}-120x100-c.jpg.

Пример пути к миниатюре размером 120x100:

wp-content/uploads/fly-images/{attachment id}/{image name}-120x100-c.jpg

Суффикс -c указывает что используется crop.

Настройки плагина

Страница настроек плагина довольно аскетична - есть проверка каталога uploads/fly-images/ на запись и кнопка очистки кеша сгененрированных этим плагином изображений. Все. Но больше, вроде как, ничего и не нужно.

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

Для работы плагина конечно же нужно PHP расширение gd или imagick. Для ресайза используются штатные ф-ции WordPress. В случае каких-либо ошибок, ф-ция для получения миниатюры просто тихо вернет пустой массив. 

Если каталог не доступен на запись - вы получите пустой массив:

// Check if images directory is writeable
if ( ! $this->_fly_dir_writeable ) {
    return array();
}

Так что в случае ошибок придется дебажить код плагина.

Для получения миниатюрки размером 120x100 используйте ф-цию fly_get_attachment_image_src():

$aSrc = fly_get_attachment_image_src($attachment_id, [120, 100], $crop = true);
$url = !empty($aSrc) ? $aSrc['src'] : '';

В случае, если нужно использовать определенные размеры миниатюр а разных местах/шаблонах - можно подобно нативному функционалу зарегистрировать "ключи" для указанных размеров:

fly_add_image_size('post-small', 365, 290, $crop = true);
fly_add_image_size('post-medium', 728, 380, $crop = true);
fly_add_image_size('post-large', 900, 410, $crop = true);
$aSrc = fly_get_attachment_image_src($attachment_id, 'post-small');

Если заданный image_size не зарегистрирован - функция вернет ссылку на оригинальное изображение.

#wordpress plugin fly-dynamic-image-resizer, #wordpress generate thumbs on demand

категория: WordPress