Коли потрібно прибирати генерацію копій зображень?
У всіх випадках, коли вам не потрібні розміри створюваних дублів. Якщо ви користуєтеся недорогим хостингом і дисковий простір на ньому обмежена. То чи варто перевірити, чи не створюються копії картинок, які не використовуються в темі. Також, численні дублі завантажуються зображень, які поміщаються в папку uploads. можуть значно збільшити розмір бекап файлів - це як мінімум незручно. Уявіть самі, ви завантажили одну картинку, а WordPress створив ще 7 мініатюр до неї - 7 копій цієї картинки, при цьому деякі з дублів можуть бути майже такого ж розміру як і оригінал. Якщо у вас на сайті тисячі картинок, то це може викликати проблеми і складності.
Як дізнатися які розміри використовуються на сайті?
За замовчуванням WordPress створює чотири копії:
- мініатюру (thumbnail)
- середній розмір (medium)
- помірний великий (medium_large) з версії 4.4.
- великий розмір (large)
Крім цих розмірів, додаткові розміри може створювати сама тема. Наприклад, доп. розмір для установки мініатюри поста, для постів в бічній панелі або для інших цілей.
Перш за все, вам потрібно визначити скільки копій створюється при завантаженні зображення. Для цього треба зайти в адмін панель і завантажте зображення великого розміру, нехай це буде картинка 1900х1000 пікселів (великий розмір потрібен для того, щоб були створені всі можливі копії). Потім зайдіть в папку завантажень зображень, зазвичай це: / wp-content / uploads /. Там файли упорядковано відповідно до роками та місяцями, зайдіть в останній рік і місяць, там ви повинні побачити файл, який тільки що завантажили і все його копії:
Копії оригіналу завантажуються картинокЯк бачите на зображенні, мій тестовий блог (тема Twenty Fifteen) створив 5 копій. Де 4 це копії за замовчуванням, а 1 інша - це налаштування теми.
Дізнаємося назви кожного розміру
Приклад з заливкою зображення, показує скільки з створюється, але не показує як називається кожен розмір. Назва (ID) розміру потрібно знати, щоб його відключити.
Щоб дізнатися які розміри зареєстровані на сайті, додайте наступний код в теми header.php або footer.php. Так ви побачите які на сайті існують розміри і як вони називаються.
Тепер зайдіть на сайт і ви побачите подібний масив:
Як відключити створення копій?
Щоб відключити генерацію копій за замовчуванням, зайдіть в Настройки> Медіафайли і поставте нуль для «великого» і «середнього» розмірів.
Сторінка налаштувань Медіафайли - залишаємо тільки потрібні розміри«Розмір мініатюри» рекомендую залишити, тому що цей розмір використовуються при створенні стандартної галереї і в превью завантажених файлів в адмін-панелі. Якщо прибрати ці розміри, то стандартна галерея не працюватиме як належить. А вікно медіатеки буде вантажити оригінали файлів, що буде сильно гальмувати адмінку.
Замітка: для відображення картинок в засобі завантаження медіафайлів при прикріпленні картинки до запису, використовуються середній розмір (medium). Але якщо його немає, використовується мініатюра (thumbnail). Тому середній розмір можна сміливо відключати.
Розмір medium_large. створюваний за замовчуванням з версії 4.4 відключити на сторінці налаштувань медіафайлів неможливо. Для відключення використовуйте хук нижче. Або зайдіть на приховану сторінку налаштувань site.ru/wp-admin/options.php і вкажіть 0 в налаштуванні medium_large_size_w:
Відключення розміру 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. Плагін повністю пересоздаст фізичні файли у відповідності з поточними установками для мініатюр.