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

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

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

Для того что бы вывести первую картинку из поста в случае когда миниатюра не задана, сделайте следующее.
В файле 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)

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

Ваш ответ

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