SharePoint Alfresco PHP MySQL
О сайте Контакты
четверг, 6 октября 2016 г.

Добавляем размеры миниатюр изображений в Wordpress

В Wordpress есть стандартные размеры миниатюр для изображений (150, 300). Когда мы загружаем картинки, Wodrpress создает эти миниатюры и мы можем их использовать в разных разделах сайта. Что делать, если нужно добавить свой размер миниатюр?

Как правило, изменять и портить файлы ядра Wordpress нельзя (точнее можно, но бессмысленно: при очередном обновлении все слетит). Поэтому, будем вносить изменения в исходники темы сайта. Подразумевается, что у вас есть своя тема сайта, которую вы можете спокойно изменять, ведь стандартные темы тоже подвержены обновлениям.

Редактируем файл темы functions.php. Практически в самом начале, где инициализируется тема (функция с постфиксом _setup()) убеждаемся, что есть строка:

add_theme_support( 'post-thumbnails' );

Скорее всего, она там есть. Если нет, добавляем. Сразу после нее нужно инициализировать новые размеры миниатюр. Вставляем подобную строку:

add_image_size( 'custom-size-200', 200, 200 );

Первый параметр - это название типа миниатюры, которое потом будем вызывать в коде. Параметры функции add_image_size можно посмотреть в документации (ширина, высота и четвертый параметр - если false, то картинка будет отмасштабирована, если true - обрезана).

Можно инициализировать сколько угодно новых размеров миниатюр. Теперь их можно вызывать в коде, например так:

the_post_thumbnail( 'custom-size-200', array( 'alt' => get_the_title() ) );

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

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

Sergey Lysenko, четверг, 6 октября 2016 г.

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