Как вывести первую картинку из поста если нет миниатюры?

Здравствуйте.  Скажите можно ли в вордпресс, в архиве, категории или на главной странице вывести миниатюру записи или страницы, но если ее нет вывести первую картинку из поста или страницы? У меня в моем блоге очень много записей но миниатюры я стал создавать только в последних. Теперь если выводить миниатюру то она не у всех записей выводится, поэтому нужно как то взять первую картинку.

Добавить Комментарий
    Ответ

    Для того что бы вывести первую картинку из поста в случае когда миниатюра не задана, сделайте следующее.
    В файле functions.php пропишите функцию, которая будет брать первую картинку:

     /*
     *   Первое изображение из поста для миниатюры
     *
     * */
    function catch_that_image() {
     global $post, $posts;
     $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)) {
     $first_img = "/images/default.jpg"; // Ссылка на заглушку
     }
     return $first_img;
     }
     

    далее где у вас вывод миниатюры, вставьте следующий код(замените вашу функцию вывода миниатюры)

     if (has_post_thumbnail()) {
     $large_image_url = wp_get_attachment_image_src(get_post_thumbnail_id(), 'large');
     echo '<p class="sidebar_new_post_line"><a href="' . get_permalink($pst->ID) . '"><img class="newrecept" src="' . $large_image_url[0] . '" /></a></p>';
     } else {
     echo '<p class="sidebar_new_post_line"><a href="' . get_permalink($pst->ID) . '"><img class="newrecept" src="' . catch_that_image() . '" /></a></p>';
     }
     

    Добавить Комментарий

    «далее где у вас вывод миниатюры» — это что имеется в виду?

    Имеется ввиду:
    Открыть файл шаблона, где нужно вывести миниатюру или заменить вывод (например category.php).
    И в этом файле, в месте, где вы хотите вывести миниатюру — добавить код.

    в 22.09.2015.
    Добавить Комментарий

    и кстати вопрос относительно редактора в котором вводятся сообщения на этом сайте — через какой плагин добавляется иконка «загрузить изображение»?

    Это не плагин, функционал встроен в шаблон.
    [Прошу не писать сообщения и вопросы не по теме, в следующий раз такие сообщения будут удалены]

    в 22.09.2015.
    Добавить Комментарий

    а также «поделиться в Соцсетях» и «Репорт», а вот «Редактировать сообщение» почему-то не работает кстати

    Так же, функционал прописан в шаблоне.
    Можете более точно указать где не работает кнопка «редактировать» и при каких условиях?

    [Прошу не писать сообщения и вопросы не по теме, в следующий раз такие сообщения будут удалены]

    в 22.09.2015.
    Добавить Комментарий

    Здравствуйте! У меня childtheme тема generatepress и там при добавлении записи есть возможность добавить изображение и это изображение появляется в анонсах. Но не всегда удобно добавить изображение таким образом, во первых это долго и во вторых перегружает хостинг. По этому я в записях вставлю изображение из других сайтов (copypaste),и дальше пишу свой текст, и когда сохраняю запись , в самой записи все отлично , но вывод записи на главной странице получается без изображении, но дело в том, что некоторые записи таким образом выводятся на главной с изображениями, а некоторые без изображении . Я не могу понять, в чем причина такой поведении , если отключена функция вывода изображении записи, тогда никакое изображение не должны выводится, но они выводятся на своё усмотрение, некоторые не выводятся, а некоторые выводятся на главной. Прошу подсказать, в чем дело?
    Например изображение этой записи не вышло на главную страницу https://www.rianovost.ru/belarus-buys-first-party-oil..
    А изображение этой записи вышло на главной
    https://www.rianovost.ru/sostoyalsya-telefonnyy-razgo..
    Такая же ситуация и с Open graph при «поделится» на соцсетях то выводится изображение, то нет, когда как)))
    В обеих случаях изображение не загрузил по форме «добавить изображение записи» А просто вставил в запись из других сайтов (copypaste)

    Добавить Комментарий

    Ваш ответ

    Размещая свой ответ, вы соглашаетесь с правилами сайта.