WP 4.4. браузер, що реагує на зображення, вибираючи "неправильний"


9

Я радий, що WP 4.4. поставляється із вбудованою функцією чуйного зображення. Але я не такий задоволений цим.

Я встановив кілька власних розмірів зображень у своєму functions.php:

add_image_size ('пост-ескізи', 600, 600, правда);
add_image_size ('новини-великі', 1024, помилково);
add_image_size ('news-small', 500, помилково);
add_image_size ('3-col', 500, 375, вірно);
add_image_size ('натискання клавіш', 600, 850, вірно);
add_image_size ('середній-великий', 768, помилковий); // щойно доданий сьогодні для підтримки пристроїв
add_image_size ('повнофункціональний образ', ​​2000, помилковий);
add_image_size ('галерея-зображення', 800, 600, правда);

Як я зрозумів, зображення, не обрізані (обрізання встановлено false), додаються до srcset. Зображення виводиться на фронтенд (наприклад, для кращої читабельності додаються розриви рядків):

<img width = "2000" висота = "1335"
src = "http://mywebsite.com/cms/wp-content/uploads/2015/03/image-2000x1335.jpg" 
class = "вкладення-повний-особливість-зображення розмір-повний-особливість-образ"
alt = "asdf"
srcset = "
http://mywebsite.com/cms/wp-content/uploads/2015/03/image-300x200.jpg 300w, 
http://mywebsite.com/cms/wp-content/uploads/2015/03/image-768x513.jpg 768w, 
http://mywebsite.com/cms/wp-content/uploads/2015/03/image-1024x683.jpg 1024w, 
http://mywebsite.com/cms/wp-content/uploads/2015/03/image-500x334.jpg 500w " 
size = "(max-width: 2000px) 100vw, 2000px">

Але тепер моя проблема: На моєму екрані відображаються лише зображення, визначені шириною 1024 пікселів, хоча вона має роздільну здатність екрана 1600 пікселів. Тож усі зображення виглядають розмитими.

Як я можу змусити WP та / або мій браузер використовувати натомість зображення 2kpx? Чи потрібно мені додати нові розміри зображень для, скажімо, 1280px, 1440px, 1600px, 1968px? Або є більш простий спосіб сказати WP / браузеру використовувати більше зображення, а не показувати розмиту і занадто малу версію?


Чи можете ви, будь ласка, спробувати це правильним способом використання add_image_size? Ви завжди встановлюєте widthаргумент на значення false - це має бути ціле число (третій аргумент).
fischi

Гаразд, зробив це і додав значення висоти 9999. Зменшені ескізи. Безрезультатно.
rob_st

Типовий max_srcset_image_widthфільтр - 1600.
1515

Добре знати @birgire - але це не дуже допомагає. Як я це зміню (здається, що документації ще немає) - і чи зміни вирішать мою проблему?
rob_st

Відповіді:


9

Щодо документації, що є у цій статті на блозі Make Blog:

Чуйні зображення в WordPress 4.4

Щоб збільшити ліміт 1600px, згаданий у коментарях, спробуйте:

add_filter('max_srcset_image_width', function($max_srcset_image_width, $size_array){
    return 2000;
}, 10, 2);

Нарешті, як уже згадувалося, вам слід виправити дзвінки add_image_size

add_image_size ('новини-великі', 1024, помилково);

треба

add_image_size('news-large', 1024, 0, false);

Дякую. Я встановив висоту на 9999 - чи має це значення? Я спробую це.
rob_st

Дякую, що це спрацювало. Хоча це в основному та сама відповідь, як ця, і насправді я віддаю перевагу названим функціям - я прийняв вашу, тому що ви були першими :-)
rob_st

Я думаю, це може бути відповіддю, яке мені потрібно, але я не знаю, яке значення $size_arrayмає мати.
Телярій

1

Я вирішив ту саму проблему, додавши додатковий розмір до функції srcsetіз функцією фільтра, яку ви можете додати у своєму functions.php:

function filter_max_srcset( $max_width, $size_array ) {
    if ( $size_array[0] === 1800 ) {
        $max_width = 1800;
    }
    return $max_width;
}
add_filter( 'max_srcset_image_width', 'filter_max_srcset', 10, 2 );
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.