@someden

Как правильно ресайзить картинки в wordpress?

Задача: вывести обрезанную картинку определенных размеров (размеры задаются в админке в пикселях).
Попробовал функцию the_post_thumbnail()
the_post_thumbnail( array( 360, 360 ) );
Но изображение не обрезается, пропорции сохраняются.

Поискал еще варианты, нашел функцию wp_get_image_editor(), которая умеет расайзить и обрезать картинки, но для нее нужен не ID картинки, а путь к ней на сервере, и возвращает функция тоже путь к картинке на сервере, поэтому пришлось дописать немного (взял за основу функцию image_make_intermediate_size()):
function get_intermediate_size_image_src( $file, $width, $height, $crop = false ) {
	if ( $width || $height ) {
		$editor = wp_get_image_editor( $file );

		if ( is_wp_error( $editor ) || is_wp_error( $editor->resize( $width, $height, $crop ) ) )
			return false;

		$resized_file = $editor->save();

		if ( ! is_wp_error( $resized_file ) && $resized_file ) {
			$upload_dir = wp_upload_dir();
			return str_replace( $upload_dir[ 'basedir' ], $upload_dir[ 'baseurl' ], $resized_file[ 'path' ] );
		}
	}
	return false;
}

Но это смахивает на велосипед, неужели нет более простого способа отресайзить и обрезать картинку в вордпрессе?

Вариант задать свой размер с кропом (см. ниже) не подходит, так как нужно чтобы админ мог в админке в пикселях задать нужный ему размер картинки для вывода.
add_image_size('square_small__crop', 360, 360, true);
  • Вопрос задан
  • 879 просмотров
Пригласить эксперта
Ответы на вопрос 3
@lakegull
Я делаю ресайз в ACDSEE, пакетной обработкой, затем заливаю куда надо. Проще способа не искал.
Ответ написан
@sera2007
использую timthumb
https://www.binarymoon.co.uk/projects/timthumb/
но это решение не из коробки, правда пока лучшего варианат не знаю(
Ответ написан
Комментировать
dimasmagadan
@dimasmagadan
timthumb использовать нельзя. Он дырявый, его уже не обновляют, проект заброшен.

попробуйте что-то из указанного на этой странице
www.deluxeblogtips.com/2015/01/resize-image-fly-wo...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы