• Добрый день, уважаемые участники форума! Подскажите, пожалуйста.

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

    1. Популярный и замечательный плагин — Auto Post Thumbnail — https://ru.wordpress.org/plugins/auto-post-thumbnail/

    2. Плагин с гитхаба — https://gist.github.com/bueltge/2930032

    3. Плагин Auto Featured Image

    4. Код для function.php отсюда — https://code.tutsplus.com/articles/automagic-post-thumbnails-image-management—wp-23129 :

    <?php 
     
    /* Function to process your thumbnail & image 
       Copy and paste the code below to your functions.php */
     
    function get_attachment_picture(){
        global $post, $posts;
        $related_thumbnail =  get_post_meta($post->ID, 'image', $single = true);                         //read post meta for image url
     
        if($related_thumbnail == ""):
            $attachments = get_children( array(
                                        'post_parent'    => get_the_ID(),
                                        'post_type'      => 'attachment',
                                        'numberposts'    => 1, 
                                        'post_status'    => 'inherit',
                                        'post_mime_type' => 'image',
                                        'order'          => 'ASC',
                                        'orderby'        => 'menu_order ASC'
                                        ) );
            if(!empty($attachments)):                                               //check if there an attachment or not
                foreach ( $attachments as $attachment_id => $attachment ) {
                  if(wp_get_attachment_image($attachment_id) != ""):
                      $related_thumbnail = wp_get_attachment_url( $attachment_id );
                  endif;                        
                }
            else:                                                           // if no attachment 
                $first_img = '';
                ob_start();
                ob_end_clean();
                $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
                $first_img = $matches [1] [0];
                 
                if(!empty($first_img)):
                    $related_thumbnail = $first_img;
                else:
                    $related_thumbnail = "images/default_thumbnail.jpg";                            //define default thumbnail, you can use full url here.
                endif;
            endif;   
        endif;  
         
        echo $related_thumbnail;
    }
    

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

    В моем случае особенность в том, что мои изображения в записях добавлены без применения функции загрузки, импортом, через админку картинки в записи не грузились, а указаны урлом в статьях (урлы в рамках домена, папка в уплодс). Это значит, что изображения, используемые в записях, не прикреплены к записи.

    Вдруг эта информация также будет полезна:
    1. Когда в опубликованные записи добавляю вручную любую картинку, то миниатюра создаётся автоматически без проблем. При этом html код картинок выглядит абсолютно одинаковым. Естественно, там присутствует тег img, src и так далее.

    2. Есть предположение, что нужно в записи произвольные поля с помощью плагина Advanced Custom Fields добавить. Или это вообще неуместно для решения моей проблемы? Если это нужно, подскажите, пожалуйста, что указать в качестве код/значение.

    3. Все плагины, Вордпрес и прочее — актуальные версии.

    4. Настройки хостинга не менял, в htaccess/mod_rewrite ничего не изменял, права папок пробовал всем 777 устанавливать.

    Спасибо за внимание. Буду рад любым советам.

Просмотр 14 ответов — с 1 по 14 (всего 14)
  • Модератор Yui

    (@fierevere)

    永子

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

    Я пробовал Customizr и Hueman. Все варианты настроек для миниатюр перепробовал у этих двух тем.

    Я не первый, кто столкнулся с подобной проблемой. Например тут также пользователь задал подобный вопрос — https://toster.ru/q/363408 , но , к сожалению, ему там никто не ответил.

    Например тут также пользователь задал подобный вопрос — https://toster.ru/q/363408

    Если у Вас так же

    картинки в записи не грузились а указаны урлом в статьях

    Т.е. их нет в медиатеке и они не привязаны к посту, то в этом и причина. (на счёт обязательности привязки до конца не уверен)

    Медиатека и такой путь в админпанели «Медиафайлы — библиотека файлов» это одно и то же? Если да, то в «Медиафайлы — библиотека файлов» все картинки есть.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем debaka1.

    Медиатека и такой путь в админпанели «Медиафайлы — библиотека файлов» это одно и то же? Если да, то в «Медиафайлы — библиотека файлов» все картинки есть.

    Да, это библиотека медиафайлов.
    А картинки привязаны к тем постам? И вставлены в запись? Если всё сделано так, то плагины для автоматического создания изображений записи должны сработать — они используют первую картинку из записи (это может у кого-то и настраивается).

    Картинки вставлены в запись. Это значит, что они привязаны/прикреплены к постам?

    Картинки вставлены в запись. Это значит, что они привязаны/прикреплены к постам?

    Это ни о чем не говорит. Привязку видно в медиатеке при переключении её в списочный вид.

    Попробую ещё раз с этим кодом повозиться в functions.php:

    <?php 
     
    /* Function to process your thumbnail & image 
       Copy and paste the code below to your functions.php */
     
    function get_attachment_picture(){
        global $post, $posts;
        $related_thumbnail =  get_post_meta($post->ID, 'image', $single = true);                         //read post meta for image url
     
        if($related_thumbnail == ""):
            $attachments = get_children( array(
                                        'post_parent'    => get_the_ID(),
                                        'post_type'      => 'attachment',
                                        'numberposts'    => 1, 
                                        'post_status'    => 'inherit',
                                        'post_mime_type' => 'image',
                                        'order'          => 'ASC',
                                        'orderby'        => 'menu_order ASC'
                                        ) );
            if(!empty($attachments)):                                               //check if there an attachment or not
                foreach ( $attachments as $attachment_id => $attachment ) {
                  if(wp_get_attachment_image($attachment_id) != ""):
                      $related_thumbnail = wp_get_attachment_url( $attachment_id );
                  endif;                        
                }
            else:                                                           // if no attachment 
                $first_img = '';
                ob_start();
                ob_end_clean();
                $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
                $first_img = $matches [1] [0];
                 
                if(!empty($first_img)):
                    $related_thumbnail = $first_img;
                else:
                    $related_thumbnail = "images/default_thumbnail.jpg";                            //define default thumbnail, you can use full url here.
                endif;
            endif;   
        endif;  
         
        echo $related_thumbnail;
    }

    Там есть этот участок кода для меня вроде бы:

    // if no attachment 
                $first_img = '';
                ob_start();
                ob_end_clean();
                $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
                $first_img = $matches [1] [0];

    Только ответьте, пожалуйста, есть ли смысл копать в сторону так называемых «настраиваемых или произвольных полей» ?

    Только ответьте, пожалуйста, есть ли смысл копать в сторону так называемых «настраиваемых или произвольных полей» ?

    1. не «так называемых», а именно так и называемых https://codex.wordpress.org/%D0%9F%D1%80%D0%BE%D0%B8%D0%B7%D0%B2%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D0%BF%D0%BE%D0%BB%D1%8F

    2. Смысл есть, если сможете. Но не с этим кодом. Там, насколько я понял, в $attachments собираются первые посты из привязанных.

    $attachments = get_children( array(
                                  'post_parent'    => get_the_ID(),
                                  'post_type'      => 'attachment',
                                   'numberposts'    => 1, 

    3 Есть смыл найти решение, что бы привязать посты картинки из контента к этим постам. Но тут я не подскажу готового.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем SeVlad. Причина: не посты, а картинки, конечно же

    3 Есть смыл найти решение, что бы привязать посты из контента к этим постам.

    Вы хотели сказать «решение, чтобы привязывать картинки из контента к записям» ?

    Вы хотели сказать «решение, чтобы привязывать картинки из контента к записям» ?

    Да, прошу прощения, опечатался. Конечно картинки.

    Спасибо вам. Отпишусь, если решу проблему.

    • Ответ изменён 7 лет, 7 месяцев назад пользователем debaka1.

    Вот нужное мне решение, чтобы связать картинку с записью — http://iwsm.ru/blog/show/wordpress-kak-sistema-upravleniya-kontentom

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