Обычно, когда вы устанавливаете нестандартный размер изображения с помощью жесткого кадрирования, например, add_image_size( 'custom-size', 400, 400, true );
вы получаете следующие результаты:
- # 1 Загруженное изображение: 600x500> Миниатюра: 400x400.
- # 2 Загруженное изображение: 500x300> Миниатюра: 400x300.
- # 3 Загруженное изображение: 300x200> Миниатюра: 300x200.
Однако я хотел бы, чтобы загруженное изображение было меньше заданной ширины, или высоты, или того и другого, нестандартного размера изображения, например, примеры № 2 и № 3 выше, - вместо того, чтобы изображение было просто обрезано, чтобы соответствовать в этих измерениях - он также обрезается в соответствии с их соотношением сторон (которое в данном случае составляет 1: 1) примерно так:
- # 1 Загруженное изображение: 600x500> Миниатюра: 400x400.
- # 2 Загруженное изображение: 500x300> Миниатюра: 300x300 .
- # 3 Загруженное изображение: 300x200> Миниатюра: 200x200 .
Я не верю, что это возможно при использовании стандартных опций add_image_size, но возможно ли использование другой функции или хука, который модифицирует функцию add_image_size?
Или есть плагин, который добавляет эту функциональность?
Любая информация, которую кто-либо может предоставить, будет принята с благодарностью.
add_image_size
чтобы сделать то, что я описал выше. Я вполне уверен, что это невозможно при использовании стандартных параметров, но я надеюсь, что это возможно, используя ловушку, действие или фильтр.Ответы:
Ты прав, что это просто так не работает.
Если вы можете думать о своем вопросе иначе, вы можете получить правильный результат в современных браузерах, используя выбор размеров изображений и адаптивных изображений.
Если вы используете такой код:
... и в ваших шаблонах что-то вроде:
... тогда по умолчанию (WP 4.4 и более поздние версии) вы получите тег изображения с наименьшей версией из вашего набора в качестве
src
и большими размерами вsrcset
атрибуте, из которого будут выбирать новые браузеры и отображать наибольшую соответствующую версию.Итак, если конкретное изображение не имеет увеличенной версии, это не имеет значения. На изображении
300x200
будет200x200
сделана версия, эта версия будет единственной в HTML, и все браузеры покажут ее.Я работал над этим, настраивая адаптивные изображения, чтобы добиться хорошей производительности в браузерах, которые поддерживают,
src
а не поддерживаютsrcset
.источник
Это не очень хорошее решение , так как это более новое решение CSS , и это работает только в 78,9% браузерах пользователей , но есть несколько polyfills , которые могут преодолеть этот объект-FIT-изображения и fitie
В идеале было бы лучше, если бы меньшие изображения пропорционально масштабировались при загрузке, но я не смог найти решение для этого.
источник