Прибираємо генерацію копій завантажуються зображень в wordpress

Коли потрібно прибирати генерацію копій зображень?

У всіх випадках, коли вам не потрібні розміри створюваних дублів. Якщо ви користуєтеся недорогим хостингом і дисковий простір на ньому обмежена. То чи варто перевірити, чи не створюються копії картинок, які не використовуються в темі. Також, численні дублі завантажуються зображень, які поміщаються в папку uploads. можуть значно збільшити розмір бекап файлів - це як мінімум незручно. Уявіть самі, ви завантажили одну картинку, а WordPress створив ще 7 мініатюр до неї - 7 копій цієї картинки, при цьому деякі з дублів можуть бути майже такого ж розміру як і оригінал. Якщо у вас на сайті тисячі картинок, то це може викликати проблеми і складності.

Як дізнатися які розміри використовуються на сайті?

За замовчуванням WordPress створює чотири копії:

  1. мініатюру (thumbnail)
  2. середній розмір (medium)
  3. помірний великий (medium_large) з версії 4.4.
  4. великий розмір (large)

Крім цих розмірів, додаткові розміри може створювати сама тема. Наприклад, доп. розмір для установки мініатюри поста, для постів в бічній панелі або для інших цілей.

Перш за все, вам потрібно визначити скільки копій створюється при завантаженні зображення. Для цього треба зайти в адмін панель і завантажте зображення великого розміру, нехай це буде картинка 1900х1000 пікселів (великий розмір потрібен для того, щоб були створені всі можливі копії). Потім зайдіть в папку завантажень зображень, зазвичай це: / wp-content / uploads /. Там файли упорядковано відповідно до роками та місяцями, зайдіть в останній рік і місяць, там ви повинні побачити файл, який тільки що завантажили і все його копії:

Прибираємо генерацію копій завантажуються зображень в wordpress
Копії оригіналу завантажуються картинок

Як бачите на зображенні, мій тестовий блог (тема Twenty Fifteen) створив 5 копій. Де 4 це копії за замовчуванням, а 1 інша - це налаштування теми.

Дізнаємося назви кожного розміру

Приклад з заливкою зображення, показує скільки з створюється, але не показує як називається кожен розмір. Назва (ID) розміру потрібно знати, щоб його відключити.

Щоб дізнатися які розміри зареєстровані на сайті, додайте наступний код в теми header.php або footer.php. Так ви побачите які на сайті існують розміри і як вони називаються.

Тепер зайдіть на сайт і ви побачите подібний масив:

Як відключити створення копій?

Щоб відключити генерацію копій за замовчуванням, зайдіть в Настройки> Медіафайли і поставте нуль для «великого» і «середнього» розмірів.

Прибираємо генерацію копій завантажуються зображень в wordpress
Сторінка налаштувань Медіафайли - залишаємо тільки потрібні розміри

«Розмір мініатюри» рекомендую залишити, тому що цей розмір використовуються при створенні стандартної галереї і в превью завантажених файлів в адмін-панелі. Якщо прибрати ці розміри, то стандартна галерея не працюватиме як належить. А вікно медіатеки буде вантажити оригінали файлів, що буде сильно гальмувати адмінку.

Замітка: для відображення картинок в засобі завантаження медіафайлів при прикріпленні картинки до запису, використовуються середній розмір (medium). Але якщо його немає, використовується мініатюра (thumbnail). Тому середній розмір можна сміливо відключати.

Розмір medium_large. створюваний за замовчуванням з версії 4.4 відключити на сторінці налаштувань медіафайлів неможливо. Для відключення використовуйте хук нижче. Або зайдіть на приховану сторінку налаштувань site.ru/wp-admin/options.php і вкажіть 0 в налаштуванні medium_large_size_w:

Прибираємо генерацію копій завантажуються зображень в wordpress
Відключення розміру medium_large з адмінки

# 1 Відключення в коді

Решта 2 копії створюються темою. Зазвичай код теми відповідає за генерацію додаткових розмірів можна знайти в файлі functions.php. Шукайте розміри які ви бачили зайшовши через FTP (672, тисячі тридцять-вісім, 576) і функцію add_image_size (). Виглядати вона буде приблизно так:

Також за створення копій може відповідати функція set_post_thumbnail_size (). виглядає вона так:

# 2 Видалення зареєстрованих розмірів через фільтр

У версії WordPress 3.9. з'явилася функція remove_image_size () - дозволяє видалити вказаний розмір мініатюри (фізичні файли не видаляються). Тепер, замість видалення рядків, можна відключити непотрібні розміри додавши фільтр в файл functions.php:

Тут 'image-name' назва розміру ( 'homepage-thumb' з прикладу вище). Видалення вішається на подію after_setup_theme. зазвичай цієї події досить. 999 означає що пріоритет виконання функції видалення, пізній, тобто функція буде викликана після всіх інших під час цієї події.

# 3 Відключення створення доп. розмірів через фільтр

Варіанти нижче можуть стати порятунком, коли ніякий інший не підходить. Обидва вони практично однакові. Вони не відключають реєстрацію розмірів, а просто видаляють їх при отриманні в потрібних місцях коду.

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

Також плагіни роботи з зображеннями використовують функцію get_intermediate_image_sizes () для отримання проміжних розмірів. З цим варіантом, такі плагіни не побачать непотрібних розмірів зовсім.

Цей варіант відключає реєстрацію зазначених розмірів тільки коли картинка завантажується на сайт в папку uploads.

У цьому коді назви: 'blog-large', 'blog-medium' і т.д. - це назви зареєстрований розмірів мініатюр, які не потрібно створювати при завантаженні оригінального зображення.

висновок

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

Зверніть увагу на мій плагін для створення мініатюр: Kama Thumbnail. C його допомогою можна динамічно створювати ті розміри які потрібні в темі. А завантажувати тільки оригінали. Я так і роблю на всіх своїх проектах.

Плагін - Force Regenerate Thumbnails

Звертаю увагу, що при відключенні розмірів мініатюр, самі файли мініатюр які лежать в папках НЕ видаляються. Відключається тільки зареєстрований розмір і при черговій завантаженні файлу мініатюра з відключеним розміром створюватися вже не буде. Щоб почистити «старі» файли використовуйте плагін Force Regenerate Thumbnails. Плагін повністю пересоздаст фізичні файли у відповідності з поточними установками для мініатюр.