ГлавнаяПлагиныКак обновить размеры миниатюр в WordPress с помощью Regenerate Thumbnails

Как обновить размеры миниатюр в WordPress с помощью Regenerate Thumbnails

При смене темы оформления в WordPress, вместо миниатюр для существующих записей мы иногда видим оригиналы изображений. Это происходит из-за того, что миниатюры требуемого размера небыли созданы в момент загрузки изображения, а с помощью плагина Regenerate Thumbnails эту проблему можно решить.

Размеры изображений

В WordPress есть понятие «размеры изображений» которых по умолчанию всего три — крупный, средний и миниатюра. При загрузке изображений в медиатеку, WordPress создает новый файл для каждого размера, т.е. если посмотреть в директорию загрузок, часто можно увидеть следующее:

  • photo.jpg
  • photo-150×150.jpg
  • photo-300×126.jpg
  • photo-672×360.jpg

Здесь видно, что к оригинальному изображению photo.jpg было создано три дополнительных файла для наших размеров. Размеры по умолчанию в WordPress можно изменять в разделе Параметры → Медиафайлы, а используются они при вставке изображений в записи, при создании галерей и в других местах.

Настройки размеров изображений в WordPress

Настройки размеров изображений в WordPress

Помимо размеров по умолчанию, в WordPress можно регистрировать дополнительные размеры с помощью тем или плагинов. Например если плагин выводит виджет с популярными записями в боковой колонке, он может сопровождать их изображениями размером 50×50 пикселей. Или тема, которая выводит записи сеткой, может использовать изображения размером 200×200 пикселей.

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

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

Это часто приводит к тому, что наш дизайн «плывет» или миниатюры на главной странице сайта весят по несколько мегабайт.

Плагин Regenerate Thumbnails

Популярный плагин Regenerate Thumbnails позволяет обновить или перегенерировать все размеры изображений для всех существующих файлов в медиатеке WordPress. Сделать это можно в разделе Инструменты → Regen. Thumbnails:

Обновить миниатюры для всех файлов в WordPress

Обновить миниатюры для всех файлов в WordPress

Если вы хотите обновить размеры только для определенных изображений в медиатеке WordPress, сделать это можно в разделе Медиафайлы → Библиотека. В настоящий момент плагин Regenerate Thumbnails работает только в режиме списка:

Обновить размеры для одного файла

Обновить размеры для одного файла

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

Альтернативы

Обновить все размеры изображений можно командой wp media regenerate если вы используете утилиту WP-CLI. Сгенерировать размеры «по требованию» позволит плагин Dynamic Image Resizer, а с помощью модуля Photon популярного плагина Jetpack можно генерировать размеры «на лету» с помощью CDN-сервисов сети WordPress.com.

В самом ядре WordPress также появится возможность генерировать размеры изображений «на лету». Следить за развитием данного функционала можно в баг-трекере WordPress.

Подписаться на рассылку

Подписаться → Подпишитесь на бесплатную рассылку журнала WP Magazine и получайте новости, события, подборки тем и плагинов, уроки, советы и многое другое в мире WordPress!

  • Александр Чебелев

    Добрый день, Константин!
    Правильно ли я понял, что с помощью этого плагина можно будет изменить размеры всех изображений, включая исходные, которые закачивались в медиа-библиотеку?

    • Александр, не совсем. Если вам необходимо изменить размер исходного изображения, вы можете воспользоваться встроенным редактором изображений в WordPress: Медиафайлы → Библиотека → Редактировать.

      • Александр Чебелев

        Благодарю Вас за ответ, Константин.
        Это самый «затратный» путь )) Если у одного из сайтов около 2000 картинок с исходным размером фотографий … ммм … сразу с фотоаппарата(!!) (такие авторы существуют, оказывается), то это задачка для админа — на год работы ))
        Вы можете что-нибудь посоветовать для решения такой глобальной задачи?
        Заранее благодарен за ответ!

        • Если вам необходимо изменить исходный размер сразу нескольких изображений, советуем смотреть в сторону внешних утилит. Вариантов масса, как платных, так и бесплатных: выполните поиск по словам «batch image resize» для вашей операционной системы.

          • altcheb

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

          • Вы можете их скачать с сервера и перезалить на сервер напрямую (с сохранением структуры) через SFTP, SCP, rsync, и т.д., и вам для этого не нужен WordPress. А некоторые Linux утилиты могут вообще выполнить всю работы прямо на сервере.

          • altcheb

            Понятно, благодарю Вас за столь подробные ответы!

  • Vitaliy Ralle

    В самом ядре WordPress также появится возможность генерировать размеры изображений «на лету».

    4 года обсуждения. Не увидел ответа на вопрос механизма кеширования. Да и использовать хотелось бы через стандартный вывод:
    the_post_thumbnail() -> has_size() ? вывод() : регенерация_и_вывод();
    Востребовано не так уже и редко. Например, при добавлении нового виджета.

    • Советуем попробовать Dynamic Image Resizer если не хочется больше ждать. Этот плагин успешно работает на некоторых крупных сайтах.

      • Vitaliy Ralle

        https://wordpress.org/support/topic/is-compatible-to-38
        Со слов автора, плагин несовместим с WP 3.8+
        Скорее всего, не стоит ждать дальнейшей поддержки от Отто.

        • Зная Otto, вряд ли он тестировал плагин на 3.8+, а мы протестировали плагин на версии 4.1 и он вполне хорошо справился с созданием размеров на лету. Стоит отметить лишь то, что для некоторых установок потребуется заменить вызовы header и readfile редиректом:

          header( ‘Location: ‘ . $_SERVER[‘REQUEST_URI’] );

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

      • А попробую. Благодарю за наводку.

  • altcheb

    Попробовал Regenerate Thumbnails …
    Миниатюры в медиабиблиотеке пропали. В самой записи изображение осталось.
    Может ли это быть из-за того, что включен Photon от Jetpack?

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

      • altcheb

        А как же тогда работать с медиа-библиотекой, если они не нужны )) или это другое?

        • Установленные темы и плагины не влияют на размеры изображений в медиатеке. Если у вас и стандартные размеры слетели при регенерации, посмотрите лог ошибок PHP, возможно на вашем хостинг-сервере не установлен какой-нибудь требуемый модуль, например GD или Imagick.

          • altcheb

            Хостер ответил, что все установлено у них. Не буду судьбу искушать — оставлю как есть.

            > посмотрите лог ошибок PHP
            Это задачка не для меня, увы )

  • altcheb

    Получилась странная штука …
    Этот плагин по ходу слишком любит работать … он затер мне и миниатюры, которые в админке, связанные с показом иконок в комментариях, хотя я его об этом ни разу не просил ))
    Вылечил — переустановкой/обновлением WP …

    • Действительно странное поведение. Возможно возникает какой-нибудь конфликт с другим вашим плагином? Может быть дадите ссылку на ваш сайт и подробнее опишите что и куда пропало? «Иконки в комментариях» это вы имеете ввиду аватары?

      • Altcheb

        blagochinie-pyatigorsk.ru
        Да, иконки аватар в админке «обсуждение». Те миниатюры картинок, которые я имел неосторожность обработать плагином, так и не появились в медиабиблиотеке. Т.е. картинки есть, а показываются они наименованием файла, но не миниатюрой.

        • Не совсем понятно, что вы имеете ввиду. Аватары под записями у вас итак не отображаются, у вас комментирование отключено. Миниатюры на сайте видны все, но возможно это из-за модуля Photon от Jetpack.

          Попробуйте прогнать несколько медиафайлов через Regenerate Thumbnails по одной а не все сразу, и посмотрите появятся ли миниатюры в админке, и посмотрите лог ошибок PHP — может быть при генерации миниатюр возникает какая-нибудь ошибка. Если не знаете где искать этот лог, попросите о помощи вашего хостинг-провайдера.

  • Алексей

    Приветствую.
    А как улучшить изображение которое публикуется во главе статьи, и почему изображение меняет размер после загрузки?

  • Вопрос не по теме, но задать не знаю куда.
    Установил тему, она показывает на главной не миниатюру, а фото, которое стоит до кнопки «читать далее». Как сделать, чтобы использовалось фото, которое указано, как миниатюра? тема
    Stocky

  • Alex Niktov

    К сожалению, не смог воспользоваться этим плагином, поскольку в разделе Параметры → Медиафайлы у меня ничего нет… на сайте почти 5 тысяч фото, но все они всегда закачивались прямо на сервер, без участия админки WP… а в текст публикации вставлялся просто html-код с вызовом миниатюры и полноразмерного фото.

  • Здравствуйте! я допустила легкомыслие при создании блога в результате за 3 года у меня закончился лимит памяти на сервере и я приступила к изучению вопроса зачистки не нужных мне миниатюр, Оказалось на каждое изображение создавалось по 8 миниатюр, просто ужас. Сейчас я настроила так что создается всего по 2 миниатюры и с новыми изображениями все ок. А со старыми не очень. В админке в библиотеке медиа файлов у меня вставились миниатюры по 300Х199, которые я хотела бы снести и оставить только 150Х150, как мне сделать так чтобы в старых изображениях с администраторской стороны перевставились бы миниатюры 150Х150 вместо 300Х199. И где задается размер того изображения которое называется миниатюра записи?