Как в Wordpress вывести последний пост, имеющий картинку, даже если после него есть более новые посты, но без картинок?

Есть в файле 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];
  return $first_img;
}


А на главной странице:

<ol>
      <?php
        $temp_query = $wp_query;
        query_posts('showposts=1');
        while (have_posts()) : the_post();
        $postoff = $post->ID;
        echo "<li class='grid_10 alpha'><a href="; the_permalink(); echo ">"; echo "<img src='".catch_that_image()."'><span>"; the_title(); echo "</span></a></li>";
        endwhile;
        $wp_query = $temp_query;
  
    echo "</ol>";


Как сделать так, чтобы в этом блоке выводился только один из последних постов имеющий в себе изображение, даже если есть более новые посты без изображений?
  • Вопрос задан
  • 94 просмотра
Решения вопроса 1
@baton4eg
web developer
Если не в миниатюре, а содержащий изображение, то я бы попробовал получить инфо поиском в первую очередь, если так не проканает проверьте тег изображений в контенте уже внутри цикла - это точно всработает.
Вот пример параметров цикла который думаю получит нужную запись:
'post_type' => 'post',
'posts_per_page' => '1',
's' => '<img',
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
san_jorich
@san_jorich
Творческий кодер
Например можно сделать проверку "на пустоту" переменной с url картинки
if( !empty(catch_that_image()) ){/*выводим на экран*/}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы