• Доброе время суток. Делаю новую тему на сайт и возникла проблема с миниатюрами для вывода в новостной ленте на главной странице.
    На сайте уже имеются статьи и созданные к ним миниатюры размером 150х150. Нужно их вывести в новостную ленту.
    Но выводится вместо обрезаной картинки 340green-150×150.jpg ее оригинал 340green.jpg с обрезкой 150х100.
    Вот код того что выводится:

    <img src="http://site/wp-content/uploads/2014/12/340green.jpg"
    class="attachment-tag-thumb111 size-tag-thumb111 wp-post-image" alt="340green"
    srcset="http://site/wp-content/uploads/2014/12/340green-300x200.jpg 300w,
     http://site/wp-content/uploads/2014/12/340green 800w" sizes="(max-width: 150px)
     100vw, 150px" height="100" width="150">

    А должно быть так:

    <img src="http://site/wp-content/uploads/2014/12/340green-150x150.jpg"
    class="attachment-tag-thumb111 size-tag-thumb111 wp-post-image"
    alt="340green" height="150" width="150">

    Вывожу с помощью функции <?php the_post_thumbnail('tag-thumb111'); ?>
    где tag-thumb111 прописан в файле function.php вот код:

    if ( function_exists( 'add_image_size' ) ) {
        add_image_size('tag-thumb111', 150, 150, true);
         }

    Получается если загрузить новую картинку и задать ее миниатюрой то тогда все работает как надо выводится обрезанная картинка 340green-150×150.jpg а если задать на миниатюру картинку которая уже была загруженная ранее то WordPress попросту ее почему то не видит и берет картинку другого размера 340green-300×200.jpg и с помощью html обрезает коряво ее под приблизительные размеры. Хотя картинка 340green-150×150.jpg существует.
    В чем может быть проблема?

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Доброе.

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

    Нет мне ненужно изменять размер изображения, изображение уже есть необходимого размера 340green-150×150.jpg мне его нужно просто вывести вместо оригинала 340green.jpg что выводит вордпрес.

    Модератор Yui

    (@fierevere)

    永子

    http://codex.wordpress.org/Post_Thumbnails
    там достаточно понятно обьяснено на примерах, на английском только

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    изображение уже есть необходимого размера 340green-150×150.jpg

    Если этот размер миниатюры раньше назывался по другому или эта миниатюра была сгенерирована не WordPress’ом, то WordPress о ней не знает.

    До этого была другая тема и она сгенерировала эти миниатюры. Вот такой список картинок есть:
    340green.jpg
    340green-48×48.jpg
    340green-90×90.jpg
    340green-150×150.jpg
    340green-300×200.jpg
    340green-490×280.jpg

    вот эти вордпрес выводит нормально:
    340green.jpg
    340green-48×48.jpg
    340green-90×90.jpg
    а этих как будто не видит, их не существует для него:
    340green-150×150.jpg
    340green-300×200.jpg
    340green-490×280.jpg

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

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    а этих как будто не видит, их не существует для него:
    340green-150×150.jpg
    340green-300×200.jpg
    340green-490×280.jpg

    Миниатюры вызываются по названию, а не по размеру, поэтому, если названия в прошлой теме отличаются от тех, что Вы сейчас используете, то да, этих миниатюр для WP не существует.

    Как указать ему на эти миниатюры?

    Самый простой способ — перегенерировать.

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

    Смотрите таблицу wp_postmeta и meta_key = _wp_attachment_metadata, в meta_value будет примерно следующий код:

    a:5:{s:5:"width";i:640;s:6:"height";i:480;s:4:"file";s:33:"2011/01/dsc20050813_115856_52.jpg";s:5:"sizes";a:4:{s:9:"thumbnail";a:4:{s:4:"file";s:33:"dsc20050813_115856_52-150x150.jpg";s:5:"width";i:150;s:6:"height";i:150;s:9:"mime-type";s:10:"image/jpeg";}s:6:"medium";a:4:{s:4:"file";s:33:"dsc20050813_115856_52-300x225.jpg";s:5:"width";i:300;s:6:"height";i:225;s:9:"mime-type";s:10:"image/jpeg";}s:4:"post";a:4:{s:4:"file";s:33:"dsc20050813_115856_52-640x300.jpg";s:5:"width";i:640;s:6:"height";i:300;s:9:"mime-type";s:10:"image/jpeg";}s:10:"post-large";a:4:
    {s:4:"file";s:33:"dsc20050813_115856_52-640x300.jpg";s:5:"width";i:640;s:6:"height";i:300;s:9:"mime-type";s:10:"image/jpeg";}}s:10:"image_meta";a:12:
    
    {s:8:"aperture";s:3:"3.2";s:6:"credit";s:0:"";s:6:"camera";s:9:"CYBERSHOT";s:7:"caption";s:0:"";s:17:"created_timestamp";s:10:"1123934337";s:9:"copyright";s:0:"";s:12:"focal_length";s:3:"9.7";s:3:"iso";s:3:"100";s:13:"shutter_speed";s:5:"0.008";s:5:"title";s:0:"";s:11:"orientation";s:1:"0";s:8:"keywords";a:0:{}}}

    Вот все миниатюры там и перечислены. В данном случае thumbnail, medium, post, post-large.

    Спасибо большое за информацию

Просмотр 7 ответов — с 1 по 7 (всего 7)

Тема «Проблема с миниатюрами» закрыта для новых ответов.