Запобігти Wordpress генерувати розмір завантажень зображення середнього розміру 768px?


10

Я дотримувався вказівок, щоб запобігти формуванню wordpress для різних зображень, розміщених на різних зображеннях, розмірами для мініатюр, середніх та великих розмірів до 0 у Налаштуваннях> Медіа та позбувся всіх примірників add_image_size та set_post_thumbnail_size у файлі function.php мого тема. Однак, коли я завантажую нові зображення, Wordpress все ще генерує 768px-версію, що перевищує початковий повний розмір. Я вважаю, що це має щось спільне з цим оновленням, але мені цікаво, чи є спосіб запобігти цьому? Я вважаю, що я прочитав деякі теми, де люди досягли цього ненавмисно, намагаючись зробити щось інше, але я шукаю метод чіткого розрізу.


Ви розумієте, що WordPress робить це для зменшення завантаження сервера та пришвидшення вашого сайту, правда?
Кеннет Одле

Відповіді:


16

Щоб видалити medium_largeрозмір зображення, ви можете спробувати його видалити за допомогою intermediate_image_sizesфільтра:

add_filter( 'intermediate_image_sizes', function( $sizes )
{
    return array_filter( $sizes, function( $val )
    {
        return 'medium_large' !== $val; // Filter out 'medium_large'
    } );
} );

Не впевнений, чи намагаєтесь ви видалити всі проміжні розміри, але тоді ви можете спробувати:

add_filter( 'intermediate_image_sizes', '__return_empty_array', 999 );

де __return_empty_array() ` - вбудована основна функція.

Слід зазначити, що видалити його неможливо

remove_image_size( 'medium_large' );

тому що він не доданий із add_image_size()і, отже, не є частиною $_wp_additional_image_sizesглобального масиву або wp_get_additional_image_sizes();


так, можливо також змінити medium_large_size_wпараметр на 0, але ми не можемо зробити це через те, /wp-admin/options.phpщо, мабуть, є проблема зі значенням 0 (це власне те, що я спробував спочатку перед тим, як написати відповідь ;-), тому нам потрібно встановити його через API налаштувань або вручну в wp_optionsтаблиці.
birgire

7

Видаліть розмір зображення так само, як це робить основний код wordpress:

add_filter('intermediate_image_sizes', function($sizes) {
    return array_diff($sizes, ['medium_large']);
});

Майте на увазі, що medium_largeзазвичай це хороший розмір srcset, видаліть його, лише якщо ви розумієте, як srcsetпрацює, якщо у вас вже є подібні розміри.


2

це спрацює


function paulund_remove_default_image_sizes( $sizes) {
    unset( $sizes['medium_large']);
    return $sizes;
}
add_filter('intermediate_image_sizes_advanced','paulund_remove_default_image_sizes');

https://developer.wordpress.org/reference/hooks/intermediate_image_size_advanced/


Хоча це не створило зображення саме по собі, проте воно створило запис у масиві вкладень, тому підроблений запис із 769x у кінці URL-адреси. Використовуючи за замовчуванням filder intermediate_image_size, він позбувся створення зображення та не відображення запису для нього у масиві.
lowtechsun
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.