Поддержка Темы и шаблоны Проблема с миниатюрами

  • Решено serg808

    (@serg808)


    Доброе время суток. Делаю новую тему на сайт и возникла проблема с миниатюрами для вывода в новостной ленте на главной странице.
    На сайте уже имеются статьи и созданные к ним миниатюры размером 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.
    Небольшой обзор работы данного плагина.

    Автор serg808

    (@serg808)

    Нет мне ненужно изменять размер изображения, изображение уже есть необходимого размера 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 о ней не знает.

    Автор serg808

    (@serg808)

    До этого была другая тема и она сгенерировала эти миниатюры. Вот такой список картинок есть:
    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.

    Автор serg808

    (@serg808)

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

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Проблема с миниатюрами» закрыта для новых ответов.