[WordPress] Закончилось место на хостинге из-за большого количества фотографий. Что делать?

  Автор:
  Один комментарий
  2125
Закончилось место на хостинге из-за большого количества фотографий

Если Вы публикуете на сайте много фотографий, которые «съедают» место на Вашем хостинге, эта статья и  видеоинструкция будет для Вас полезными.

Исходя из своей практики, я покажу в деталях, что нужно делать, если у Вас сайт на WordPress, и из-за публикации большого количество фотографий заканчивается место на хостинге.

Видео инструкция предназначена для опытного пользователя WordPress, обладающего специальным техническими знаниями.

А новичку будет полезно узнать:

  • что происходит с оригиналом фотографии загруженной на сайт,
  • как браузер определяет, какие фотографии показывать на мониторе обычного компьютера (ноутбука), а какие на мобильном устройстве,
  • в каком формате нужно подготовить фотографии для загрузки на сайт и многое другое…

Итак, я кратко опишу довольно типичную из своей практики.

Гомельская Епархия Белорусской Православной Церкви (https://eparhiya.by) на своем сайте на WordPress активно публикуют статьи о всех прошедших событиях, мероприятиях в виде новостей, анонсов.

Практически каждая статья содержит галерею из фотографий. Статьи публикуются каждый день, а иногда и по несколько статей в день. За последних 2 года на хостинг было загружено более 40000 фотографий в формате JPG и PNG, которые на хостинге порядка 30 гигабайт. Хостинг с каждым днем все больше и больше раздувался, поэтому приходилось увеличивать тариф докупая место.

Чтобы решить проблему раздувания хостинга, был установлен плагин, который оптимизирует изображения и генерирует копии в формате WebP.

Решение верное, но что произошло.

Плагин продублировал все изображения с миниатюрами в формат WebP. И теперь на хостинге лежали не 40000 фотографий с миниатюрами, а более 320 тысяч изображений!

Дело в том, что WordPress, шаблон и некоторые плагины создают из каждой  загруженной фотографии уменьшенные копии. Поэтому 1 фотография на хостинге хранит еще от 4 до 8 фотографий (это в случае именно этого сайта), чтобы отображать их на разных типах устройств.

Для примера выглядит это так (вверху оригинал, ниже копии):

Задача состояла следующая:

  1. Запретить генерацию изображений. Это можно сделать с помощью плагина Disable Generate Thumbnails. На этом этапе мы решаем вопрос с генераций фото для новых статей.
  2. Удалить из базы данных из таблицы «postmeta» в строке «_wp_attachment_metadata» содержимое массива «sizes»
  3. Удалить все копии изображений с хостинга. Оставить только оригинальные изображения.

ВНИМАНИЕ! Если Вы решите использовать мой метод описанный  с этой статье и показанный в видео, то перед использованием кодов, которые я привожу ниже, сделайте копию папки uploads и базы данных, или только таблицы postmeta своего сайте на WordPress.

Не показывать атрибут srcset. Этот код необходим только если вы не собираетесь удалять записи в базе данных (код ниже).

function remove_max_srcset_image_width( $max_width ) {
 return false;
}
add_filter( 'max_srcset_image_width', 'remove_max_srcset_image_width' );

function wdo_disable_srcset( $sources ) {
 return false;
}
add_filter( 'wp_calculate_image_srcset', 'wdo_disable_srcset' );

/* Disable Widgets Block Editor */
add_filter( 'use_widgets_block_editor', '__return_false' );

Код для удаления списка размеров в базе данных. Вставить код в funсtions.php шаблона. После сохранения, код удалить.


global $wpdb;
$query = "SELECT meta_value, meta_id FROM $wpdb->postmeta WHERE meta_key = '_wp_attachment_metadata'";
$result = $wpdb->get_results($query);

foreach ($result as $item) {
$meta = unserialize($item->meta_value);

unset($meta['sizes']['thumbnail']);
unset($meta['sizes']['medium']);
unset($meta['sizes']['medium_large']);
unset($meta['sizes']['large']);
unset($meta['sizes']['1536x1536']);
unset($meta['sizes']['2048x2048']);

$wpdb->update( $wpdb->postmeta, array('meta_value' => serialize($meta)), array('meta_id' => $item->meta_id) );

}

В каждой строке unset заменить второе значение unset($meta[‘sizes’][‘ЗНАЧЕНИЕ ЗАМЕНИТЬ’]) в квадратных скобках на свое.

Дальше, когда место на хостинге значительно освободится, можно (но не обязательно) сделать следующее:

  1. Установить плагин для регенерации миниатюр. Для этого нужно будет установить специальный плагин и указать размер миниатюр. В этом случае можно указать только одну копию, для мобильных устройств (600 x 600 без обрезки)
  2.  Сгенерировать изображение в WebP формате.

Я использую для этой цели  фотошоп, или быстрые онлайн — инструменты для изменения размеров изображений:

  • Bulk Resize Photos (https://bulkresizephotos.com)
  • ShortPixel (https://shortpixel.com)
  • TinyPNG (https://tinypng.com)

 


Создайте сайт с нами — легко и быстро!

С вопросами и за помощью обращайтесь в нашу службу поддержки 24/7

 

Нужен качественный хостинг для сайта на WordPress?
Рекомендую, проверенные годами, хостинг Timeweb:
Надежный проверенный годами хостинг для сайта на WordPress
а также, хостинг Beget:
Хостинг Beget

 

[WordPress] Закончилось место на хостинге из-за большого количества фотографий. Что делать?

   2 голоса
Средняя оценка: 5 из 5
Если Вам понравилась статья и Вы нашли её полезной, поделитесь ею в соцсетях! Нажмите на кнопки ниже, чтобы сделать это прямо сейчас.

Анфиса Бреус

Анфиса Бреус - специалист по Wordpress с 2007 года. Создатель и разработчик шаблона "AB-Inspiration" для самостоятельной и профессиональной настройки сайтов на WordPress для бизнеса. Основатель клуба "Мастер WordPress" и автор эксклюзивных курсов по WordPress. Фрилансер. Спикер.

Оставьте свой комментарий:

Комментарии на Блог
Один комментарий
  1. У меня когда-то был форум о собаках с возможностью загружать фотографии своих питомцев. Вот там была проблема с гигантскими фотографиями, у нас народ не умеет ресайзить фото.

Ваш адрес email не будет опубликован. Обязательные поля помечены *