Как в 2 шага очистить сайт на WordPress от ненужных изображений

Как вы знаете, WordPress позволяет создавать уменьшенные копии загружаемых изображений для того, чтобы не приходилось использовать полноразмерную версию там, где это не нужно.

Это и понятно — предположим, некто загружает на сайт картинки с разрешением 5000×5000, согласитесь, было бы глупо использовать их в качестве миниатюр постов.

Так вот, при загрузке каждого изображения на сайт, WordPress по умолчанию будет создавать три его копии — thumbnail (миниатюра), medium (средний размер), large (крупный размер). Также могут создаваться дополнительные копии, заданные в теме или плагине через функцию add_image_size().

А теперь давайте откроем папку uploads и посмотрим, сколько копий имеет каждое изображение на нашем сайте:

копии изображений

Ага, у меня таких копий четыре. Так вот, суть в том, что если вы не используете какие-либо из размеров изображения, то зачем вам нужны лишние копии в папке загрузок?

Особенно это относится к стандартным размерам изображений. Теперь давайте попробуем их отключить.

Шаг 1. Как предотвратить создание неиспользуемых размеров изображений в WordPress

Для стандартных размеров thumbnail, medium и large код будет следующим:

function true_remove_default_image_sizes( $sizes ) {
	unset( $sizes['thumbnail']); // отключаем миниатюры
	unset( $sizes['medium']); // отключаем средний размер
	unset( $sizes['large']); // отключаем крупный размер
	// если вы не хотите отключать всё, можете закомментировать 1-2 строчки
	return $sizes;
}
 
add_filter('intermediate_image_sizes_advanced', 'true_remove_default_image_sizes');

Если не знаете, куда вставлять код, вставляйте в functions.php (он есть в папке с темой).

Если, кроме стандартных, у вас создаются ещё копии, тогда просто ищем использование функции add_image_size() в файлах текущей темы и в активных плагинах. Все крутые текстовые редакторы поддерживают поиск по содержимому файлов из папки.

Шаг 2. Удаляем ненужные копии изображений в автоматическом режиме

После того, как мы отключили все неиспользуемые нами размеры изображений, в дело вступает плагин.

Плагин «Force Regenerate Thumbnails»

По сути этот плагин делает две вещи:

  1. Удаляет полностью все размеры изображений,
  2. Генерирует копии заново (если конечно вы не отключили полностью все копии в шаге 1 — в этом случае плагин просто почистит папку uploads, оставив только оригинал каждой картинки).

Давайте рассмотрим этот процесс подробнее:

  1. Для начала конечно нужно добавить плагин, вы можете сделать это непосредственно через админку WordPress в меню Плагины > Добавить новый, на этой странице в поле поиска указываем название Force Regenerate Thumbnails,
  2. После установки переходим в Инструменты > Force Regenerate Thumbnails,
  3. Нажимаем кнопку Regenerate All Thumbnails и наслаждаемся результатом.

Также вы можете скачать этот плагин на русском языке (с возможностью обновления через админку) по ссылке с моего сайта: force-regenerate-thumbnails.zip. Гарантирую, что плагин не содержит вредоносного кода и рекламных ссылок.

Таким образом вы можете освободить значительное место на вашем хостинге.

Подпишитесь, чтобы раз в неделю получать свежие статьи с блога по email.

Ещё посты про изображения в WordPress

Комментарии 13

  • user24 мая 2014 в 17:05 #

    круто

  • Роман22 октября 2014 в 21:10 #

    Зачем городить огород? Слов нет. Просто выставь в размерах фоток (настройки-медиафайлы) нули и будет тебе счастье - никаких фоток по четыре в ряяд. Весь интернет заполонили вот такие псевдо-советы, а потом жалуются на плохой Вордик.

    • Миша23 октября 2014 в 00:10 #

      Во-первых, посмотри о чем вообще этот пост.
      Во-вторых, сначала на практике попробуй то, о чем пишешь, а потом уже умничай.

      • Игорь Фёдоров23 июля 2015 в 04:07 #

        Мишка, а он прав. Я также отключил все размеры, выставив нули.
        И плагины никакие не нужны. :-)

        Не знаю, работают ли тут картинки. :)

  • Роман23 октября 2014 в 03:10 #

    Пост "о том" самом, читать обучен. Все подобные уроки расчитанны на новичков и имеют малое отношение к реально действующим сайтам (ГС, заполонившие интернет не в счет).
    Новичку лезть во все эти дебри - убивать сайт. ИМХО.
    Для продвинутого вся нужная инфа тут - http://codex.wordpress.org/ (есть там и на русском, но мало).
    Ранее, когда руки волосатились, делал и я эту дребедень с фото, для functions.php есть плагин вставки сниппетов. И темы крутил...ооо... просто офигеть какие настраивал. А потом понял, !НАФИГА! ? Судя по всему, вы тоже это поняли, тема весьма минималистична и логична.

    Повторяю - настраиваете в меню вышеизложенное и у вас будет ДВА фото, то что вы загрузили и то, которое будет показываться на странице..но...это если изображение велико (ВП оптимизирует его), ежели маленькое фото (к примеру 20 кб) и размер небольшой (высота и ширина), тогда оно будет ОДНО! Это ПРОВЕРЕННО.

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

    пс: для абсолютного большинства любителей вполне хватит пару десятков плагинов, десяток сниппетов и темы по умолчанию. Я себе сейчас поставил последнюю, 2015... - это оргазм, а не тема.
    Основную часть дизайна можно вполне наладить цветом сайта и фотографиями...

    • Миша23 октября 2014 в 07:10 #

      Пост "о том" самом, читать обучен.

      Допустим у тебя на сайте 1000 изображений в папках по месяцам + 3 тысячи их дубликатов, которые не используются.
      Пост именно о том, как удалить эти копии в автоматическом режиме.

      Повторяю - настраиваете в меню вышеизложенное и у вас будет ДВА фото

      То, что описал ты, работает поверхностно, я сейчас уже не помню, в чем именно, но точно знаю, что какие-то баги с этим были.

      Все подобные уроки расчитанны на новичков и имеют малое отношение к реально действующим сайтам

      Конкретно этот пост рассчитан на всех. Так как ты — наглядный пример того, что человек, который уже разбирается в WordPress, тоже знает не всё (не в обиду сказано).

      Для продвинутого вся нужная инфа тут - http://codex.wordpress.org/

      Официальный кодекс как раз рассчитан на новичков. Русскоязычный вообще не в счет. Единственное только можно найти интересные решения на их форуме.

  • Роман23 октября 2014 в 13:10 #

    Ну, во первых: назвать меня человеком, который разбирается в вордике - это будет преувеличением и наверное большим. Опытный пользователь, вот точное определение. К примеру, из того, что в твоем портфолио, я, наверное, смог бы повторить половину, ну или чуть более половины.
    Кодекс - новичек там вообще ничего не поймет, он для новичков, которые учатся профессионально (не знаю, как правильно написать), кои по подобным сайтам не бродят (не в обиду :) , у тебя сайт как раз вполне адекватный и придраться мало к чему можно).
    О фотографиях - для совсем дремучего пользователя, а именно этот урок на таких и расчитан, проще покопаться в настройках, сайту - точно не будет хуже. То, что подобный варинт с изъяном, не исключаю но,... он работает, чего же более? А про сайты в тысячу/чи фоток и все еще не оптимизированных .... это т.н. ГС и смысла их править нет, лучше снести, а их владельцам поучиться делать нормальные сайты. Да и в конце концов, если чистить единоразово, то можно стереть через хостинг, да БД почистить и настроить...это все делается через админку... хотя плагин - это выход еще лучше, поставил - воспользовался и выкинул его//если плаг нормальный, то можно и оставить, ведь общеизвестно, что качественный плаг никакой нагрузки не несет вообще (ну, только если код растет в размерах, но это будет и от прямого размещения в движке кусков кода//.
    Я, основываясь на своем довольно таки богатом опыте, утверждаю: нечего лезть под капот не имея теории. Лучше пущай обращаются к программерам, к тебе например и тот им все сделает, а за отдельную денюшку напишет инструкцию, что и как он сделал и как настраивать без него, в том числе и под капотом.
    Для прочих же, повторяю: пару десятков плагов (в их числе Jetpak, в нем есть управление CSS) и плагин по сниппетам, а к нему десяток снипетов. Да нормальную, без выкидонов, тему. Вот тут можно проверить _http://themecheck.org/ , я добивался 100% на дефолтных и на их дочерних темах. К слову сказать, оч. многие темы, в том числе и премиум, не набирают там и 50%, часто НОЛЬ.
    Да, такие сайты не увешанны, как елки, различными игрушками, но обладают несомненными преимуществами - они работают отлично и не требуют постоянного вмешательства владельца, знай себе добавляй фото и тексты, да раз в неделю, 15-20 минут на обслуживание.

  • Виталий18 марта 2015 в 18:03 #

    Добрый день! Скажите пожалуйста как лучше решить такую проблему:
    На сайте порядка 25000 изображений, из них часть миниатюр часть оригинальных изображений и часть от различных плагинов
    Проблема такая:
    из всего этого хлама используется 2/3 миниатюр размером 50x50, 292x164 которые создаются темой из оригиналов загружаемых плагинами, миниатюры из первого изображения, "постера" видео с ютуба и популярных записей; в дальнейшем после загрузки мне оригиналы не нужны да они и весят очень много
    при "ручном" удалении после в логах вылазит куча ошибок 404 от поисковиков. я так понимаю они идут по этим создаваемых СЕО плагином
    Есть ли возможность массово заменить оригинал например этим размером 292x164?
    Или может есть какие-то другие решения?
    т.е. Цель сохранить место, избавиться от оригиналов изображений и ошибок 404

    • Миша18 марта 2015 в 20:03 #

      Добрый день!

      Существуют решения относительно того, как создавать размеры изображений только там, где они нужны.

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

      • Виталий18 марта 2015 в 20:03 #

        Спасибо за ответ! Очень жаль, оригиналы занимают уж очень много места и висят баластом ненужным :(, особенно тогда когда все сгенерировано
        Буду пробовать искать варианты, как избавится от них правильно

  • VRS29 мая 2015 в 09:05 #

    Привет, Миша.
    Вопросик).
    Мне нужно точно кадрировать средний размер.
    Нашла код в буржунете

    if(false === get_option("medium_crop")) {
         add_option("medium_crop", "1"); }
         else {
              update_option("medium_crop", "1");
         }

    Если вставить его в твою функцию - сработает? или отдельно надо писать?

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

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Владимир: и на третьей строке не хватает скобки ) закрывающей if :)

  • Миша: Добрый вечер! Рекомендую получить ID пользователя через функцию get_current_user_id().

  • Дмитрий: Миша, подскажите пожалуйста, я использую такой редирект, но он не срабатывает: add_action( 'template_redirect', funct...

  • Миша: Ну как не определена - это аргумент функции. Или я просто вас не до конца понимаю.

  • Артем: Ага, понял. Вот только почему $args? Она же нигде не определена, по логике должна быть переменная $true_field_params или...