Wordpress нестандартные размеры изображений upcsacle image - PullRequest
0 голосов
/ 03 апреля 2020

Я создал собственный веб-сайт WordPress и добавил несколько пользовательских размеров изображений. Проблема в том, что пользователь загружает изображение меньшего размера (700x300), чем пользовательское изображение, которое не обрезается до заданного соотношения сторон.

Как я могу масштабировать изображения, чтобы они соответствовали размеру моего усечения (соотношение сторон 1: 1)?

Вот моя функция обрезки:

add_image_size( 'article-crop', 700, 700, true ); 

1 Ответ

1 голос
/ 03 апреля 2020

Это можно исправить, добавив этот код в функции вашей темы. php файл. Он масштабирует изображения до размеров миниатюр и корректно их обрезает.

/*  Thumbnail upscale
/* ------------------------------------ */ 
function alx_thumbnail_upscale( $default, $orig_w, $orig_h, $new_w, $new_h, $crop ){
    if ( !$crop ) return null; // let the wordpress default function handle this

    $aspect_ratio = $orig_w / $orig_h;
    $size_ratio = max($new_w / $orig_w, $new_h / $orig_h);

    $crop_w = round($new_w / $size_ratio);
    $crop_h = round($new_h / $size_ratio);

    $s_x = floor( ($orig_w - $crop_w) / 2 );
    $s_y = floor( ($orig_h - $crop_h) / 2 );

    return array( 0, 0, (int) $s_x, (int) $s_y, (int) $new_w, (int) $new_h, (int) $crop_w, (int) $crop_h );
}
add_filter( 'image_resize_dimensions', 'alx_thumbnail_upscale', 10, 6 );

Источник

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...