Как сделать автоматическое создание thumb изображений

Ребят, такая проблема. На сайте http://ubuntovod.ru, на главной странице, у каждого поста сбоку отображается картинка, первая в новости. Пропускается она через файл timthumb.php в теме. Ссылка на картинку выглядит примерно так:
http://ubuntovod.ru/wp-content/themes/TemPuteh/timthumb.php?src=http://ubuntovod.ru/wp-content/uploads/2011/07/ask-650×238.jpg&w=200&h=150&zc=1
То есть при каждом заходе на главную первая картинка обрезается до размера 200*150. Естественно это влечёт не маленькую нагрузку на хостинг. Хотелось бы как то решить этот вопрос.
Есть ли такой плагин, который бы один раз генерировал thumb изображение, сохранял его и можно было как то автоматически «вылавливать» ссылку на это изображение, дабы всё автоматически делалось, не приходилось делать дополнительные поля, либо ещё как то заморачиваться?

Sk8er
Оцените автора
Добавить комментарий

  1. Sk8er автор

    Пока что решил вопрос с нагрузкой отключением этого файла. Но теперь изображение тупо сжимается, что выглядит не слишком красиво. Так что вопрос в силе :)

    Ответить
  2. zetrider

    Возможно вариант не самый удобный но почему бы не использовать следующую схему:
    Параметры — Мидеафайлы: размер миниатюры 200*150
    а в шаблоне где должны отображаться миниатюры вписать код:

    if ( function_exists("has_post_thumbnail") && has_post_thumbnail() ) { the_post_thumbnail(array(200,150)); }

    Нужное изображение использовать как миниаютру, если нет такой функции в functions.php вашего шаблона впишите:

    add_theme_support('post-thumbnails');   
    if ( function_exists('add_theme_support') ) {
        add_theme_support('post-thumbnails');
    }

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

    Ответить
    1. Sergey Biryukov

      http://wordpress.org/extend/plugins/regenerate-thumbnails/

      Ответить
  3. A-Lex

    Что-то я не понимаю в чём проблема.
    post-thumbnails конечно решает, но можно решить проблему кэшированием.
    То есть при создании миниатюры на лету, складывать её на диск и отдавать пользователю.
    Примерно так:
    1. Делаем rewrite для /thumbs/img_name_size.jpg на timthumb.php (/thumbs/[regexp] -> timthumb.php?file=…&size=…)
    2. Проверяем наличие миниатюры с заданным именем на диске
    2.1 Если нашлась — см. пункт 3
    2.2 Если нет — сжимаем, сохраняем (image_jpeg($img, $path, $quality))
    3. Отдаём

    Но лучше прегенерации ничего нет, если у Вас конечно не nginx с модулем image_filter и кэшем

    Ответить
  4. zetrider дает совершенно правильное решение — воспользоваться встроенными возможностями WordPress, предусматривающими работу с миниатюрами. Для изучения этих возможностей будут так же полезны следующие публикации:

    • Как добавить в тему поддержку миниатюр
    • Основы работы с WordPress | Работа с изображениями – размер миниатюр
    • Основы работы с WordPress | Работа с изображениями – редактирование

    Чтобы миниатюры были видны, использовать код, который привел zetrider (приведен так же тут). Чтобы создать миниатюры для уже существующих в блоге изображений, можно воспользоваться одним из специальных плагинов.

    Ответить
  5. Sk8er автор

    Нашёл самый шикарный вариант. Написал о нём в блоге: http://blog.sk8er.name/rabota/timthumb-php.html
    Tiaurus, не сочти за рекламу :)

    Ответить
    1. А чем встроенная в WordPress генерация миниатюр не устраивает?

      Ответить
      1. Sk8er автор

        как мне показалось, там просто больше заморочек.

        Ответить
        1. Что вы называете заморочками? Одну строчку в functions.php?

          Ответить
  6. kazanec

    Есть умельцы кто может перенастроить мне вывод превьюх на главной за разумные деньги?

    Ответить
    1. tiaurus

      Я думаю, вы и сами сможете это сделать:
      — Как создать миниатюры картинок
      Как вывести миниатюру первого изображения поста

      Ответить