Поиск

How to: Получить и показать первое изображение из записи

first image from post

Очень часто в блогах используется вводная картинка для поста. Какая нибудь ассоциативная или привлекающая внимание. А у некоторых шаблонов главная страница сделана не в виде обычного блога, когда записи идут последовательно, а «портального» типа, когда в разных блоках могут показываться последние записи из разных категорий. И что бы автоматизировать этот процесс, нам необходимо взять первую картинку из поста и показать ее (иногда еще и изменить размер).

Так вот, большинство вариантов используют для этой цели пользовательские поля. Это хорошая идея, но вы должны знать, что с помощью простого PHP кода, вы можете добиться аналогичного результата и «выдернуть» первое изображение из записи, ну и вывести его где будет необходимо.

Первое, что нам необходимо сделать, так это добавить нужную функцию в наш файл 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;
}

Это все :)
Теперь, что бы вывести картинку, нужно просто вызвать нашу функцию, в основном цикле the_loop.
Вызов функции вывода картинки будет иметь следующий вид

<?php echo catch_that_image() ?>

Найдено на wprecipes.com

Оставить комментарий